WO2014094250A1 - Data processing method and device - Google Patents

Data processing method and device Download PDF

Info

Publication number
WO2014094250A1
WO2014094250A1 PCT/CN2012/086928 CN2012086928W WO2014094250A1 WO 2014094250 A1 WO2014094250 A1 WO 2014094250A1 CN 2012086928 W CN2012086928 W CN 2012086928W WO 2014094250 A1 WO2014094250 A1 WO 2014094250A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
ssd
control chip
chip
address information
Prior art date
Application number
PCT/CN2012/086928
Other languages
French (fr)
Chinese (zh)
Inventor
蔡涛
龚涛
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2012/086928 priority Critical patent/WO2014094250A1/en
Priority to CN2012800032891A priority patent/CN103403667A/en
Publication of WO2014094250A1 publication Critical patent/WO2014094250A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Definitions

  • the present invention relates to storage technologies, and in particular, to a data processing method and apparatus. Background technique
  • the array controller is used to connect the service server and the disk array, and is responsible for controlling the service data transmission before the service server and the disk array, which is equivalent to the bridge between the service server and the disk array.
  • the array controller usually includes a front-end interface chip, a back-end control chip, and the like.
  • the front-end interface chip is configured to connect to a service server, and send or receive service data with the service server, for example, send service data received from the service server. To the backend control chip, or send the service data received from the backend control chip to the service server.
  • the back-end control chip is used to connect to the disk array, and the service data transmitted from the front-end interface chip can be written to the disk array, or the service data read from the disk array can be transmitted to the front-end interface chip.
  • the disk array is, for example, a storage array composed of a mechanical hard disk.
  • the SSD has an improved ability to read/write Operations Per Second (IOPS) per second compared to a mechanical hard disk.
  • IOPS Operations Per Second
  • a 2.5-inch SSD IOPS is equivalent to 100 of the same size of a traditional mechanical hard disk. ⁇ 300 times, the performance of the disk array has been greatly improved.
  • the back-end control chip in the array controller is designed for the traditional mechanical hard disk. The IOPS capability is limited. When there are 2-4 SSDs in the disk array, the SSD can not support the SSD. The performance requirements, which hinder the performance of the entire disk array.
  • the present invention provides a data processing method and apparatus to accommodate the performance requirements of a disk array composed of SSDs.
  • a data processing method including:
  • the data control chip acquires first address information from the front end interface chip, where the first address information is used Indicates an address at which the first data is to be written or an address at which the second data is to be read;
  • the data control chip obtains second address information according to the first address information, where the second address information is used to indicate that the first address information is at a location corresponding to a solid state drive SSD, and the data control chip passes PCI Express ( PCI-E) interface is respectively connected to the SSD and the front-end interface chip
  • the data control chip transmits, by using the PCI-E interface, the SSD between the front-end interface chip and the SSD corresponding to the second address information.
  • the data or the second data includes: the data control chip transmitting the second address information to the front end interface chip, so that the front end interface chip passes the PCI-E interface of the data control chip, Writing the first data or reading the second data to the SSD corresponding to the second address information in a direct memory access DMA manner.
  • the data control chip transmits the first interface chip and the SSD corresponding to the second address information by using the PCI-E interface a data or the second data, comprising: the data control chip acquiring the first data from a memory connected to the data control chip, and writing the first data according to the second address information Entering the corresponding SSD, the first data is that the front-end interface chip is transmitted to the memory through the data control chip; or the data control chip is from the corresponding SSD according to the second address information Reading the second data, and transmitting the second data to a memory connected to the data control chip, so that the front-end interface chip reads the first memory from the memory through the data control chip Two data.
  • the front interface chip and the Transmitting the first data or the second data between the SSDs corresponding to the second address information including: when the first data written to the SSD is transmitted through the data control chip, the data control chip The data is mirrored and the mirrored data is sent to a mirrored SSD connected to the data control chip.
  • the front interface chip and the Transmitting the first data or the second data between the SSDs corresponding to the second address information includes: when the first data written to the SSD is transmitted through the data control chip, the data The control chip performs verification information calculation on the data, and writes the verification information into the verification SSD in the SSD.
  • a data control chip including:
  • An information receiving unit configured to acquire first address information from a front-end interface chip, where the first address information is used to indicate an address to be written into the first data or an address to read the second data;
  • An information processing unit configured to obtain second address information according to the first address information, where the second address information is used to indicate that the first address information is at a location corresponding to a solid state drive SSD, and the data control chip passes the PCI Express a (PCI-E) interface is respectively connected to the SSD and the front-end interface chip;
  • PCI-E PCI Express a
  • a transmission control unit configured to transmit, by the PCI-E interface, the first data or the second data between the front-end interface chip and an SSD corresponding to the second address information, so as to be from the front end
  • the first data received by the interface chip is written to the SSD, or the second data is read from the SSD and transmitted to the front end interface chip.
  • the transmission control unit is specifically configured to send the second address information to the front-end interface chip, so that the front-end interface chip passes the data
  • the PCI-E interface of the control chip writes the first data or reads the second data to the SSD corresponding to the second address information in a direct memory access DMA manner.
  • the transmission control unit is specifically configured to acquire the first data from a memory connected to the data control chip, and according to the second address Transmitting, by the information, the first data to the corresponding SSD, where the first data is transmitted by the front-end interface chip to the memory by using the data control chip; or, according to the second address information, corresponding to Reading, by the SSD, the second data, and transmitting the second data to a memory connected to the data control chip, so that the front-end interface chip reads from the memory through the data control chip The second data.
  • the method further includes: a mirror protection unit, And when the first data to be written into the SSD is transmitted through the data control chip, the data control chip mirrors the data, and sends the mirrored data to the data control A mirrored SSD connected to the chip.
  • the method further includes: a check protection unit, configured to: When the first data written to the SSD is transmitted through the data control chip, the data control chip performs verification information calculation on the data, and writes the verification information into the
  • an array controller including: a front end interface chip, a solid state hard disk SSD, and a data control chip according to the present invention; and the data control chip separately interfaces with the SSD and the front end interface chip through a PCI-E interface Communication connection.
  • the method further includes: a mirroring SSD; the data control chip is communicably connected to the mirrored SSD through a PCI-E interface; and the mirrored SSD is configured to use the data
  • the control chip receives the data copied by the image.
  • the method further includes: a memory; the data control chip is connected to the memory through a PCI-E interface; and the memory is configured to receive the first interface chip from the front end interface chip. a data, such that the data control chip acquires the first data from the memory and writes the SSD; or receives, from the data control chip, second data read from the SSD, such that the data The front end interface chip acquires the second data from the memory.
  • FIG. 1 is a schematic diagram of an application structure of an embodiment of a data processing method according to the present invention
  • FIG. 2 is a schematic flowchart of an embodiment of a data processing method according to the present invention.
  • FIG. 3 is a schematic structural diagram of an application of another embodiment of a data processing method according to the present invention.
  • FIG. 4 is a schematic diagram of an unprotected process of another embodiment of a data processing method according to the present invention.
  • FIG. 5 is a schematic diagram of a mirror image protection process according to another embodiment of a data processing method according to the present invention
  • FIG. 6 is a schematic diagram of a verification protection process according to another embodiment of a data processing method according to the present invention
  • FIG. 7 is a schematic flowchart of still another embodiment of a data processing method according to the present invention
  • FIG. 8 is a schematic structural diagram of an embodiment of a data control chip according to the present invention.
  • FIG. 9 is a schematic structural diagram of another embodiment of a data control chip according to the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS In order to make the objects, technical solutions and advantages of the present invention more comprehensible, the embodiments of the present invention are further described in detail below with reference to the accompanying drawings.
  • FIG. 1 is a schematic diagram of an application structure of an embodiment of a data processing method according to the present invention
  • FIG. 2 is a schematic flowchart of an embodiment of a data processing method according to the present invention.
  • the data control chip can be generally applied to a solid-state storage array controller for connecting a service server and a disk array.
  • the disk array of this embodiment is a storage array composed of SSDs, wherein Multiple SSDs can be included.
  • the solid state storage array controller also includes a front end interface chip for connecting to a service server and for data transmission, and a data control chip for connecting to the SSD array.
  • the solid-state storage array controller is equivalent to the bridge between the service server and the SSD.
  • the service server writes data to the SSD, or the service server reads data from the SSD.
  • the process of writing or reading data is controlled by the array. Control execution.
  • the data is transmitted to the SSD through the front-end interface chip and the data control chip; when reading, the data is transmitted from the SSD through the data control chip and the front-end interface chip to the service server.
  • connection interface between the data control chip and other devices adopts a PCI-E (Peripheral Component Interconnect Express) interface, for example, communicates with the SSD and the front-end interface chip through a PCI-E interface respectively; therefore, the above In the process of writing the first data to the SSD or reading the second data from the SSD, the transmission in the data control chip is actually transmitted through the PCI-E channel (with the PCI-E interface, it is indicated inside the chip) Transmission via PCI-E channel).
  • the data control chip SSD of the embodiment of the present invention may be, for example, a storage array composed of SSDs of a PCI-E interface.
  • the data processing method in this embodiment mainly describes how the data control chip controls the data transmission before the service server and the SSD;
  • the data control chip acquires first address information from the front end interface chip.
  • the first address information is used to indicate an address to be written into the first data or an address to read the second data, the first data is to be written into the solid state hard disk SSD, and the second data is to be from the SSD
  • the first address information that is read includes: for example, the address and length to be written, or the address and length to be read.
  • the first address information may be that the service server sends the first address information corresponding to the data to the front-end interface chip when the operation is to be written or read, and then transmitted by the front-end interface chip to the data control chip.
  • the data control chip in this embodiment obtains the first address information from the front-end interface chip, and the data control chip can be directly obtained from the front-end interface chip, and the data control chip and the front-end interface chip are directly connected; Alternatively, the data control chip may be indirectly obtained from the front-end interface chip.
  • the data control chip and the front-end interface chip are connected by, for example, a PCI-E switch chip.
  • the first address information is transmitted from the front-end interface chip to the PCI.
  • the -E switch chip is transferred to the data control chip, and the PCI-E switch chip and the data control chip are still connected through the PCI-E interface.
  • the data control chip obtains second address information according to the first address information, where the second address information is used to indicate that the first address information is at a location corresponding to the SSD of the solid state drive;
  • the data control chip calculates, according to the first address information acquired in 201, which part of the storage area on which the SSD should receive the data to be written, or calculates which part of the storage area on which the SSD is to be provided. Reading the data, and obtaining the second address information corresponding to the SSD and the storage area thereof, the second address information comprising: the address and the length of the SSD to be written or read. Through this step, the data control chip actually obtains which SSDs should be written to the data or from which SSDs to acquire the data to be read.
  • the data control chip transmits the first data or the second data between the front-end interface chip and the SSD corresponding to the second address information by using the PCI-E interface.
  • the transmitting data includes: transmitting first data to be written from the front-end interface chip to the SSD, and transmitting second data to be read from the SSD to the front-end interface chip.
  • the first data to be written or the second data to be read may include two ways: One way is that the data control chip sends the second address information to the front-end interface chip, and the front-end interface chip The direct memory access DMA mode directly writes the first data to the SSD, or directly reads the second data from the SSD, and the data control chip is equivalent to providing a data transmission channel for the access. Another way is that the data control chip itself writes the first data to the SSD according to the second address information. Or reading the second data from the SSD, the first data or the second data is also transmitted to the front-end interface chip through the data control chip.
  • data transmission between the front-end interface chip and the SSD is performed by the data control chip, if some data processing in the transmission process, such as data mirroring, data verification, and the like, is involved.
  • the processing is also performed by the data control chip.
  • the above data transmission process and the processing of the data protection are performed by the data control chip, thereby reducing the burden of the central processing unit (CPU) in the array controller, so that the CPU can be used for Processing of other advanced features such as snapshots, deduplication, and so on.
  • CPU central processing unit
  • the data processing method of the embodiment achieves the performance requirement of adapting the performance of the disk array composed of the SSD is the following principle: the original back-end control chip is designed for the traditional mechanical hard disk, and the transmission interface and the data transmission are followed.
  • the transmission protocol is adapted to the mechanical hard disk, and the IOPS capability is limited, so the higher IOPS capability of the SSD cannot be satisfied; and the data control chip in this embodiment communicates with the SSD and other devices through the PCI-E interface, correspondingly,
  • the transmission protocol followed by data transmission also uses the PCI-E protocol, that is, the data control chip is changed from hardware (PCI-E interface) and software (PCI-E protocol) to PCI-E mode, the PCI-E.
  • the high transmission IOPS capability of the mode can fully meet the high IOPS performance of the SSD, which is beneficial to the full performance of the SSD.
  • the data between the front-end interface chip and the SSD transmitted by the data control chip may be the first data to be written to the SSD, or may be the second data read from the SSD.
  • the manner of transmitting data between the front-end interface chip and the SSD is equivalent to the manner in which the front-end interface chip side accesses the SSD, and may be a character device access mode or a block device access mode.
  • the data control chip of the embodiment of the present invention can support the two. The way to access, that is, to support the two ways of data writing or reading.
  • This embodiment mainly describes the data control chip supporting the access mode of the character device, and details the data transmission process between the front-end interface chip and the SSD in the character device access mode.
  • the front-end interface chip can directly access the SSD by using Direct Memory Access (DMA).
  • DMA Direct Memory Access
  • FIG. 3 is a schematic diagram of an application structure of another embodiment of a data processing method according to the present invention.
  • the structure is an optional array controller structure.
  • the data control chip of the embodiment of the present invention is disposed in the array controller.
  • the data control chip supports multiple PCI-E interfaces: for example, through a PCI-E interface and CPU Connected as a data interaction channel between the CPU and the data control chip. Connected to the front-end interface chip through one or more PCI-E interfaces, as a channel for business data and management data (business data is to be written to or read from the SSD, and the management data is stored by the CPU, for example, it can be a service
  • the server transmits to the CPU through the data control chip).
  • the data mirroring control chip is connected to the data mirroring control chip through a PCI-E interface, and the data mirroring channel connected to the data mirroring control chip is used to save the data written by the service server to the SSD to multiple arrays.
  • Figure 3 shows the structure of an array controller that is connected to another array controller and is responsible for routing between the array controllers.
  • the copy of the mirrored copy data is protected by mirrored data.
  • the SSD array consisting of multiple SSDs at the back end is connected through multiple PCI-E interfaces, and the interfaces of these SSDs are all PCI-E interfaces.
  • the data control chip itself can be directly connected to a separate memory, such as the memory connected to the data control chip shown in FIG. 3, such as when the block device access mode is set; and the character device in this embodiment.
  • a separate memory such as the memory connected to the data control chip shown in FIG. 3, such as when the block device access mode is set; and the character device in this embodiment.
  • the front-end interface chip can directly access the SSD through the DMA method, the memory of the connection data control chip may not be set.
  • SSD arrays composed of SSDs. For example, if they are classified according to data protection, they can be divided into three categories: unprotected, mirrored, and verified. For example, RAID-0 is unprotected; RAID -1, RAID-10 is a mirror protection type, which provides data protection by copying multiple copies of data to different physical media such as different array controllers. RAID-5, RAID-6 is a type of parity protection, that is, data is passed. Check the way to provide data protection. The following describes the data protection chip in the above three types of data protection mode, how the data control chip controls the data transmission between the front-end interface chip and the SSD. The descriptions of 401, 402, etc. are only used to distinguish the processing. The order of execution is not limited.
  • FIG. 4 is a schematic diagram of an unprotected process according to another embodiment of the data processing method of the present invention. As shown in FIG. 4, the method may include:
  • the front-end interface chip obtains data to be written into the SSD and the corresponding first address information from the service server, and sends the first address information to the data control chip.
  • the front-end interface chip and the service server generally use SCSI (Small Computer System Interface, is a kind of interface bus, which has communication with various types of peripherals) protocol for data interaction; front-end interface chip processing After the protocol interaction with the service server is completed, the service data to be written into the SSD is received from the service server, and the data is referred to as the first data;
  • the front-end interface chip further receives first address information corresponding to the service data, where the first address information is used to indicate an address of the service data to be written into the SSD, and the first address information includes, for example, a write
  • the starting address and length for example, the starting address of the data to be written is 120, and the length is 8; the 120 is the identifier of the sector on the SSD, and the 8 represents 8 sectors, that is, the sector from the identifier 120. Start writing data and write 8 sectors in succession.
  • the front end interface chip sends the first address information to the data control chip.
  • the data control chip obtains the second address information according to the first address information, where the second address information is used to indicate that the first address information is at a location corresponding to the SSD of the solid state drive;
  • the data control chip may obtain second address information of the SSD for storing the data corresponding to the first address information according to the first address information; for example, for an SSD array composed of multiple SSDs, The second address information actually indicates which SSD the eight sectors starting from 120 described in the above 401 are located on, and which position is located in the SSD.
  • the data control chip is provided with a striping rule, according to which the storage space of the plurality of SSDs in the SSD array can be divided into several strips, each strip being part of each SSD. Formed in combination, each portion of each SSD included in each strip includes a plurality of sectors.
  • the data control chip can calculate which SSDs the service data to be written should be received according to the obtained first address information and the striping rule, and which sectors of the SSD are received.
  • the above-mentioned data is written from the sector with the identifier of 120 and written continuously for 8 sectors, that is, equivalent to writing in the 8 sectors whose sector identifier is 120 to 127, the data control chip can It is calculated that the eight sectors are the first SSD located in the SSD array, and are located on the first strip in the first SSD, and the location information of the first SSD and the first strip is Called the second address information.
  • the data control chip sends the second address information to the front-end interface chip, where the data control chip acquires second address information corresponding to the SSD for writing service data, such as the foregoing SSD address and SSD. Information such as the specific location on the front side is sent to the front-end interface chip.
  • the front-end interface chip writes the first data to the SSD corresponding to the second address information by using a direct memory access DMA.
  • the character device access mode is used.
  • the front-end interface chip After receiving the second address information sent by the data control chip, the front-end interface chip directly writes the service data to be written into the corresponding SSD.
  • the data control chip can not set the connected memory.
  • the front-end interface chip and the SSD are connected through the data control chip, so even if the front-end interface chip directly accesses the SSD, the data transmission still passes through the data control chip; and, the data is transmitted through the data control chip.
  • the PCI-E channel in the chip is transmitted, enters the chip through the PCI-E interface of the data control chip, and is transmitted to the SSD through the PCI-E interface connected to the SSD.
  • steps 401-404 describe the process of writing the first data to the SSD.
  • steps 405-408 describe the process of reading the second data from the SSD through steps 405-408:
  • the front-end interface chip obtains first address information corresponding to the second data to be read from the SSD from the service server, and sends the first address information to the data control chip.
  • the service server When the service server reads the service data from the SSD, it notifies the front-end interface chip of the first address information of the data, including the address and length of the data; the front-end interface chip sends the first address information to the data control chip.
  • the data control chip obtains second address information according to the first address information, where the second address information is used to indicate that the first address information is at a location corresponding to the SSD of the solid state drive;
  • the data control chip may obtain second address information of the SSD for storing the data corresponding to the first address information according to the first address information. Similarly, the data control chip also calculates which SSDs the service data to be read should be provided according to the pre-stored striping rules and the first address information, and obtains the addresses and read positions of the SSDs, which may be referred to as a second. Address information.
  • the data control chip sends the second address information to the front end interface chip.
  • the front-end interface chip reads the second data from the SSD corresponding to the second address information by using a direct memory access DMA mode.
  • the character device access mode is used. After receiving the second address information sent by the data control chip, the front-end interface chip reads the service data directly from the corresponding SSD and transmits the service data to the service. server.
  • the front-end interface chip directly accesses the SSD, the overall 10 path can be greatly reduced, and the IOPS performance of the array controller can also be improved.
  • FIG. 5 is a schematic diagram of a mirror protection process according to another embodiment of the data processing method of the present invention.
  • FIG. 5 only shows the steps different from the flow of FIG. 4, and the difference between each step and the corresponding step in FIG. 4 respectively. The description is made, and the same steps are not shown in Figure 5; 501, when the first data is to be written into the SSD, the data control chip obtains the corresponding second address information according to the first address information corresponding to the first data to be written;
  • the difference between the step and the step 402 is that the data control chip does not calculate the image SSD when calculating the second address information of the SSD, that is, the SSD corresponding to the obtained second address information is not a mirrored SSD.
  • the mirrored SSD is an SSD connected to another array controller connected to the data mirroring control chip of FIG.
  • the front-end interface chip writes the first data to the SSD corresponding to the second address information by using a direct memory access DMA mode; and the data control chip mirrors the data, and sends the mirrored data to the mirror. SSD;
  • the difference between the step and the step 404 is that when the service data to be written into the SSD passes through the data control chip, in order to improve the security and reliability of the data storage, it is ensured that the image data can be recovered from the mirror data when one of the storage data is faulty.
  • the data control chip mirrors the service data according to the pre-stored mirroring rules, that is, copies the data into multiple copies and writes them into the mirrored SSD to implement the image protection function.
  • the data control chip obtains the corresponding second address information according to the first address information corresponding to the second data to be read.
  • the data control chip can calculate the image SSD when calculating the second address information of the SSD, that is, the SSD corresponding to the obtained second address information may also be a mirrored SSD.
  • the data control chip can calculate the image SSD when calculating the second address information of the SSD, that is, the SSD corresponding to the obtained second address information may also be a mirrored SSD.
  • the SSD connected to the data control chip fails, it may select a certain SSD in the mirrored SSD to provide data according to the mirroring rule.
  • the selected strategy may be to select a relatively idle SSD, or may be random. select.
  • the front-end interface chip reads the second data from the SSD corresponding to the second address information by using a direct memory access DMA mode.
  • step 408 The difference between the step and the step 408 is that if the data control chip returns to the front-end interface chip in 503 is the second address information corresponding to the mirrored SSD, the front-end interface chip in this step is directly from the corresponding DMA mode. Mirror the SSD to read the data.
  • FIG. 6 is a schematic diagram of a verification protection process according to another embodiment of the data processing method of the present invention, and FIG. 6 only shows steps different from the flow of FIG. 4, and respectively for each step relative to the corresponding step in FIG. The differences are explained, and the same steps are not shown in Figure 6;
  • the front-end interface chip accesses the DMA with direct memory.
  • the method writes the data to the SSD corresponding to the second address information; and, the data control chip performs verification information calculation on the data, and writes the verification information into the verification SSD;
  • the difference between the step and the step 404 is: when the first data written to the SSD is transmitted through the data control chip, the data control chip performs the verification information on the first data to obtain Verifying the information, and writing the verification information to the verification SSD in the SSD; the verification SSD is a device for storing verification information in the SSD array, thereby implementing verification protection of the first data.
  • the data to be written can be divisible by the size of the stripe, there is no write penalty, and it is also possible to directly calculate the checksum, which is also called check information.
  • the data control chip obtains the corresponding second address information according to the first address information corresponding to the second data to be read.
  • the difference between the step and the step 406 is that, for example, when an SSD in the SSD connected to the data control chip fails, if the data control chip finds that the second data to be read is in the failed SSD In this case, the data control chip can recover the second data to be read according to the data or information (for example, the verification information) stored by the remaining SSDs that are still working normally, and store the restored second data in the data.
  • the data control chip can recover the second data to be read according to the data or information (for example, the verification information) stored by the remaining SSDs that are still working normally, and store the restored second data in the data.
  • the data or information for example, the verification information
  • This embodiment mainly describes the data control chip supporting the access mode of the block device, and illustrates the data transmission process between the front-end interface chip and the SSD in the block device access mode.
  • the data transmission process can refer to the flow arrow shown in Figure 3 (the write flow is shown in Figure 3).
  • the data control chip needs to be connected to the memory, used to cache the service data, and the data control.
  • a memory controller can also be embedded in the chip to control the transfer of data to the memory.
  • FIG. 7 is a schematic flowchart of another embodiment of a data processing method according to the present invention.
  • the processing procedure in the access mode of the block device in the embodiment is the same as the processing flow in the access mode of the character device, and details are not described herein. Steps, including:
  • the front-end interface chip obtains the first data to be written into the SSD and the corresponding first address information from the service server; and the front-end interface chip transmits the acquired first data to the memory connected to the data control chip, and the first The address information is sent to the data control chip;
  • the front interface chip of the embodiment transmits the first data to and from the DMA.
  • the first data is first transmitted to the data control chip through the PCI-E interface, and then transmitted to the memory after the data control chip.
  • the data control chip when the first data passes through the data control chip, the data control chip mirrors the first data, and sends the first data copied by the mirror to the adjacent array controller.
  • Mirror SSD when the first data passes through the data control chip, the data control chip mirrors the first data, and sends the first data copied by the mirror to the adjacent array controller.
  • the data control chip performs check information calculation on the first data to obtain verification information.
  • the data control chip obtains corresponding second address information according to the first address information.
  • the data control chip obtains the first data from the connected memory, and writes the first data to the corresponding SSD according to the second address information;
  • the first data is written into the SSD by the data control chip itself, and the data control chip further performs related processing such as stripe splitting on the first data.
  • the data control chip further sends the calculated verification information to the verification SSD in this step.
  • the data control chip deletes the first data cached in the memory.
  • the data control chip deletes the cached data in the connected memory
  • the data control chip may first send a command to the adjacent array controller connected to the data mirror control chip, indicating to delete the first cache in the adjacent array controller. Data, and then delete the cached data in the local direct-attached memory.
  • the front-end interface chip obtains, from the service server, first address information corresponding to the second data to be read from the SSD, and sends the first address information to the data control chip.
  • the data control chip obtains corresponding second address information according to the first address information.
  • the data control chip reads the second data from the corresponding SSD according to the second address information, and transmits the second data to a memory connected to the data control chip.
  • the front-end interface chip reads the second data from the memory by using the data control chip in a direct memory access DMA mode.
  • FIG. 8 is a schematic structural diagram of an embodiment of a data control chip according to the present invention.
  • the data control chip can perform the method of any embodiment of the present invention.
  • the data control chip can include: The information receiving unit 81, the information processing unit 82, and the transmission control unit 83; wherein the information receiving unit 81 is configured to acquire first address information from the front end interface chip, where the first address information is used to indicate that the first data is to be written. Address or address to read the second data;
  • the information processing unit 82 is configured to obtain second address information according to the first address information, where the second address information is used to indicate that the first address information is at a location corresponding to a solid state drive SSD, and the data control chip passes the PCI An Express (PCI-E) interface is respectively connected to the SSD and the front end interface chip;
  • PCI-E PCI An Express
  • a transmission control unit 83 configured to transmit, by using the PCI-E interface, the first data or the second data between the front-end interface chip and an SSD corresponding to the second address information, so that The first data received by the front end interface chip is written to the SSD, or the second data is read from the SSD and transmitted to the front end interface chip.
  • the transmission control unit 83 is specifically configured to send the second address information to the front-end interface chip, so that the front-end interface chip passes the PCI-E interface of the data control chip to directly store
  • the access DMA mode writes the first data or reads the second data to an SSD corresponding to the second address information.
  • the transmission control unit 83 is specifically configured to acquire the first data from a memory connected to the data control chip, and write the first data into a corresponding one according to the second address information.
  • the SSD the first data is that the front-end interface chip is transmitted to the memory through the data control chip; or, the second data is read from the corresponding SSD according to the second address information, And transmitting the second data to a memory connected to the data control chip, so that the front end interface chip reads the second data from the memory through the data control chip.
  • FIG. 9 is a schematic structural diagram of another embodiment of the data control chip of the present invention. As shown in FIG. 9, the data control chip of this embodiment may further include:
  • the image protection unit 84 is configured to: when the first data written to the SSD is transmitted through the data control chip, the data control chip mirrors the data, and sends the mirrored data to A mirrored SSD connected to the data control chip.
  • the method further includes: a check protection unit 85, configured to: when the first data written into the SSD is transmitted through the data control chip, the data control chip performs verification information on the data Calculating, and writing the verification information to the verification SSD in the SSD.
  • a check protection unit 85 configured to: when the first data written into the SSD is transmitted through the data control chip, the data control chip performs verification information on the data Calculating, and writing the verification information to the verification SSD in the SSD.
  • the two functions are mutually supported in the specific implementation; for example, after RAID data processing involves address translation or data mirroring, etc. It is necessary to perform data transmission according to the translated address result or the mirrored data.
  • the function module of the RAID data processing notifies the PCI-E exchange function module of the processing result, and the function module exchanged by the PCI-E is based on the above conversion.
  • the subsequent address result or the mirrored data is transmitted in PCI-E mode.
  • the functional modules of the PCI-E exchange and the functional modules of the RAID data processing are both located inside the data control chip and belong to the internal communication of the chip, the two can communicate and interact through the private transmission protocol, and the communication efficiency is high.
  • the way in which the two functional modules are located on two chips does not occupy the PCI-E switching function, so that the PCI-E switching function is all used for data transmission between the front-end interface chip and the SSD, which helps Improve data transmission efficiency (the two functional modules are located in two chips, the two chips must communicate through the PCI-E protocol, which will consume the switching function of the larger part of PCI-E, so that the front-end interface chip and The data transmission efficiency between SSDs is degraded).
  • PCI-E switching and RAID data processing are integrated in the data control chip, and some functions or storage units can be shared, for example, a data buffer unit, a data calculation function, a debugging function, etc., that is, in the data control chip.
  • a data cache unit can be set up, which can be used for both cache in PCI-E exchange and cache in RAID data processing. In this way, the data control chip is reduced in cost, hardware layout, power consumption, heat dissipation, and the like.
  • the functions of PCI-E switching and RAID data processing are integrated in the data control chip, and the function expansion capability of the data control chip is also improved, so that the data control chip may encounter an application of the SSD for the PCI-E interface.
  • the problem provides an opportunity to solve; for example, when the SSD of the PCI-E interface encounters a hot swap, if the data control chip stops abnormally, it can pass The function of RAID data processing has been improved to solve this problem; but if the chip has only PCI-E switching function, the above problem cannot be solved, which seriously affects the normal operation of the storage device.
  • the embodiment provides a solid state storage array controller, including: a front end interface chip, a solid state hard disk SSD, and a data control chip according to any of the present invention; the data control chip respectively communicates with the SSD and the front end through a PCI-E interface Interface chip communication connection.
  • an optional solid-state storage array controller structure further includes: a mirrored SSD; the data control chip is communicably connected to the mirrored SSD through a PCI-E interface; A mirrored SSD for receiving mirrored copy data from the data control chip.
  • the solid state storage array controller further includes: a memory; the data control chip is connected to the memory through a PCI-E interface; the memory is configured to receive first data from the front end interface chip, so that the data is controlled The chip acquires the first data from the memory and writes the SSD; or receives the second data read from the SSD from the data control chip, so that the front-end interface chip acquires the memory from the memory The second data is described.
  • FIG. 3 is only an optional solid-state storage array controller structure, and may be changed in specific implementation.
  • the data control chip shown in FIG. 3 is directly connected to the front-end interface chip, and may also be in data control.
  • a PCI-E switch chip is disposed between the chip and the front-end interface chip, so that the front-end interface chip is connected to the data control chip through the PCI-E switch chip; in addition, the data control chip can also be connected to multiple PCI-E switch chips and the like. .
  • the solid state storage array controller of the embodiment improves the IOPS capability of the array controller by adapting the data control chip with the PCI-E interface, and adapts to the performance requirements of the SSD array; and, compared with the conventional array control
  • the array controller of the embodiment integrates the PCI-E switching function and the array processing function, such as data protection processing, on one chip, that is, the data control chip, which greatly simplifies the structure of the array controller and simplifies the array controller. cost.
  • the method includes the steps of the foregoing method embodiments; and the foregoing storage medium includes: a medium that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Bus Control (AREA)

Abstract

The present invention provides a data processing method and device. The method comprises: a data control chip acquiring first address information from a front-end interface chip, the first address information being used for indicating an address where first data is to be written or an address where second data is to be read; the data control chip obtaining second address information according to the first address information, the second address information being used for indicating a corresponding position of the first address information in a solid state disk (SSD), and the data control chip being in communication connection to the SSD and the front-end interface chip through a PCI-E interface; and the data control chip transmitting the first data or the second data between the front-end interface chip and the SSD corresponding to the second address information through the PCI-E interface, so that the first data received from the front-end interface chip can be written into the SSD, or the second data can be read from the SSD and transmitted to the front-end interface chip. The present invention can meet the performance demand of a disk array composed of SSDs.

Description

数据处理方法和设备 技术领域 本发明涉及存储技术, 尤其涉及一种数据处理方法和设备。 背景技术  TECHNICAL FIELD The present invention relates to storage technologies, and in particular, to a data processing method and apparatus. Background technique
阵列控制器用于连接业务服务器和磁盘阵列, 负责控制业务服务器与磁 盘阵列之前的业务数据传输, 相当于业务服务器和磁盘阵列之间的桥梁。 该 阵列控制器中通常包括前端接口芯片、 后端控制芯片等, 所述前端接口芯片 用于连接业务服务器, 与业务服务器进行业务数据的发送或者接收, 例如, 将从业务服务器接收的业务数据发送至后端控制芯片, 或者将从后端控制芯 片接收的业务数据发送至业务服务器。所述后端控制芯片用于连接磁盘阵列, 可以将从前端接口芯片传输来的业务数据写入磁盘阵列, 或者将从磁盘阵列 读取的业务数据传输至前端接口芯片。 所述的磁盘阵列例如是机械硬盘组成 的存储阵列。  The array controller is used to connect the service server and the disk array, and is responsible for controlling the service data transmission before the service server and the disk array, which is equivalent to the bridge between the service server and the disk array. The array controller usually includes a front-end interface chip, a back-end control chip, and the like. The front-end interface chip is configured to connect to a service server, and send or receive service data with the service server, for example, send service data received from the service server. To the backend control chip, or send the service data received from the backend control chip to the service server. The back-end control chip is used to connect to the disk array, and the service data transmitted from the front-end interface chip can be written to the disk array, or the service data read from the disk array can be transmitted to the front-end interface chip. The disk array is, for example, a storage array composed of a mechanical hard disk.
随着存储介质的不断发展和成熟, 后端控制芯片连接的磁盘阵列也从传 统的机械硬盘变更为固态硬盘 ( Solid State Disk, 简称: SSD )。 该 SSD相比 于机械硬盘每秒读写操作的次数 ( Input /Output Operations Per Second , 简称: IOPS )能力得到提升, 例如, 一块 2.5寸形态的 SSD, IOPS相当于同尺寸的 传统机械硬盘的 100〜300倍, 使得磁盘阵列的性能得到大幅提高。 但是, 阵 列控制器中的后端控制芯片是针对传统的机械硬盘设计的, IOPS能力有限, 当磁盘阵列中有 2-4块 SSD时尚能支撑, 后续再增加 SSD则无法满足 SSD 组成的磁盘阵列的性能需求, 从而阻碍了整台磁盘阵列的性能提高。 发明内容 本发明提供一种数据处理方法和设备, 以适应 SSD组成的磁盘阵列的性 能需求。  With the continuous development and maturity of storage media, the disk array connected to the back-end control chip has also changed from a traditional mechanical hard disk to a solid state disk (SSD). The SSD has an improved ability to read/write Operations Per Second (IOPS) per second compared to a mechanical hard disk. For example, a 2.5-inch SSD, IOPS is equivalent to 100 of the same size of a traditional mechanical hard disk. ~300 times, the performance of the disk array has been greatly improved. However, the back-end control chip in the array controller is designed for the traditional mechanical hard disk. The IOPS capability is limited. When there are 2-4 SSDs in the disk array, the SSD can not support the SSD. The performance requirements, which hinder the performance of the entire disk array. SUMMARY OF THE INVENTION The present invention provides a data processing method and apparatus to accommodate the performance requirements of a disk array composed of SSDs.
第一方面, 提供一种数据处理方法, 包括:  In a first aspect, a data processing method is provided, including:
数据控制芯片从前端接口芯片获取第一地址信息, 所述第一地址信息用 于表示要写入第一数据的地址或者要读取第二数据的地址; The data control chip acquires first address information from the front end interface chip, where the first address information is used Indicates an address at which the first data is to be written or an address at which the second data is to be read;
所述数据控制芯片根据所述第一地址信息得到第二地址信息, 所述第二 地址信息用于表示所述第一地址信息在固态硬盘 SSD对应的位置, 所述数据 控制芯片通过 PCI Express (PCI-E)接口分别与所述 SSD和前端接口芯片通信 连接  The data control chip obtains second address information according to the first address information, where the second address information is used to indicate that the first address information is at a location corresponding to a solid state drive SSD, and the data control chip passes PCI Express ( PCI-E) interface is respectively connected to the SSD and the front-end interface chip
所述数据控制芯片通过所述 PCI-E接口, 在所述前端接口芯片与所述第 二地址信息对应的 SSD之间传输所述第一数据或第二数据, 以使得将从所述 前端接口芯片接收的所述第一数据写入所述 SSD、或者从所述 SSD读取所述 第二数据传输至所述前端接口芯片。  Transmitting, by the data control chip, the first data or the second data between the front-end interface chip and the SSD corresponding to the second address information by using the PCI-E interface, so that the front-end interface is to be The first data received by the chip is written to the SSD, or the second data is read from the SSD and transmitted to the front end interface chip.
结合第一方面, 在第一种可能的实现方式中, 所述数据控制芯片通过所 述 PCI-E接口, 在所述前端接口芯片与所述第二地址信息对应的 SSD之间传 输所述第一数据或所述第二数据, 包括: 所述数据控制芯片将所述第二地址 信息发送至所述前端接口芯片, 以使得所述前端接口芯片通过所述数据控制 芯片的 PCI-E接口, 以直接内存访问 DMA方式对所述第二地址信息对应的 SSD写入所述第一数据或读取所述第二数据。  With reference to the first aspect, in a first possible implementation, the data control chip transmits, by using the PCI-E interface, the SSD between the front-end interface chip and the SSD corresponding to the second address information. The data or the second data includes: the data control chip transmitting the second address information to the front end interface chip, so that the front end interface chip passes the PCI-E interface of the data control chip, Writing the first data or reading the second data to the SSD corresponding to the second address information in a direct memory access DMA manner.
结合第一方面, 在第二种可能的实现方式中, 所述数据控制芯片通过所 述 PCI-E接口, 在所述前端接口芯片与所述第二地址信息对应的 SSD之间传 输所述第一数据或所述第二数据, 包括: 所述数据控制芯片从与所述数据控 制芯片相连接的内存中获取所述第一数据, 并根据所述第二地址信息将所述 第一数据写入对应的所述 SSD, 所述第一数据是所述前端接口芯片通过所述 数据控制芯片传输至所述内存; 或者, 所述数据控制芯片根据所述第二地址 信息从对应的所述 SSD读取所述第二数据, 并将所述第二数据传输至与所述 数据控制芯片相连接的内存, 以使得所述前端接口芯片通过所述数据控制芯 片从所述内存读取所述第二数据。  With reference to the first aspect, in a second possible implementation, the data control chip transmits the first interface chip and the SSD corresponding to the second address information by using the PCI-E interface a data or the second data, comprising: the data control chip acquiring the first data from a memory connected to the data control chip, and writing the first data according to the second address information Entering the corresponding SSD, the first data is that the front-end interface chip is transmitted to the memory through the data control chip; or the data control chip is from the corresponding SSD according to the second address information Reading the second data, and transmitting the second data to a memory connected to the data control chip, so that the front-end interface chip reads the first memory from the memory through the data control chip Two data.
结合第一方面、 第一方面的第一种可能的实现方式、 或者第一方面的第 二种可能的实现方式, 在第三种可能的实现方式中, 所述在所述前端接口芯 片与所述第二地址信息对应的 SSD之间传输所述第一数据或第二数据,包括: 在将写入所述 SSD的所述第一数据传输经过所述数据控制芯片时, 所述数据 控制芯片将所述数据进行镜像复制, 并将镜像复制的数据发送至与所述数据 控制芯片相连接的镜像 SSD。 结合第一方面、 第一方面的第一种可能的实现方式、 或者第一方面的第 二种可能的实现方式, 在第四种可能的实现方式中, 所述在所述前端接口芯 片与所述第二地址信息对应的 SSD之间传输所述第一数据或所述第二数据, 包括: 在将写入所述 SSD的所述第一数据传输经过所述数据控制芯片时, 所 述数据控制芯片对所述数据进行校验信息计算, 并将所述校验信息写入所述 SSD中的校验 SSD。 With reference to the first aspect, the first possible implementation manner of the first aspect, or the second possible implementation manner of the first aspect, in a third possible implementation manner, the front interface chip and the Transmitting the first data or the second data between the SSDs corresponding to the second address information, including: when the first data written to the SSD is transmitted through the data control chip, the data control chip The data is mirrored and the mirrored data is sent to a mirrored SSD connected to the data control chip. With reference to the first aspect, the first possible implementation manner of the first aspect, or the second possible implementation manner of the first aspect, in the fourth possible implementation manner, the front interface chip and the Transmitting the first data or the second data between the SSDs corresponding to the second address information includes: when the first data written to the SSD is transmitted through the data control chip, the data The control chip performs verification information calculation on the data, and writes the verification information into the verification SSD in the SSD.
第二方面, 提供一种数据控制芯片, 包括:  In a second aspect, a data control chip is provided, including:
信息接收单元, 用于从前端接口芯片获取第一地址信息, 所述第一地址 信息用于表示要写入第一数据的地址或者要读取第二数据的地址;  An information receiving unit, configured to acquire first address information from a front-end interface chip, where the first address information is used to indicate an address to be written into the first data or an address to read the second data;
信息处理单元, 用于根据所述第一地址信息得到第二地址信息, 所述第 二地址信息用于表示所述第一地址信息在固态硬盘 SSD对应的位置, 所述数 据控制芯片通过 PCI Express (PCI-E)接口分别与所述 SSD和前端接口芯片通 信连接;  An information processing unit, configured to obtain second address information according to the first address information, where the second address information is used to indicate that the first address information is at a location corresponding to a solid state drive SSD, and the data control chip passes the PCI Express a (PCI-E) interface is respectively connected to the SSD and the front-end interface chip;
传输控制单元, 用于通过所述 PCI-E接口, 在所述前端接口芯片与所述 第二地址信息对应的 SSD之间传输所述第一数据或第二数据, 以使得将从所 述前端接口芯片接收的所述第一数据写入所述 SSD、或者从所述 SSD读取所 述第二数据传输至所述前端接口芯片。  a transmission control unit, configured to transmit, by the PCI-E interface, the first data or the second data between the front-end interface chip and an SSD corresponding to the second address information, so as to be from the front end The first data received by the interface chip is written to the SSD, or the second data is read from the SSD and transmitted to the front end interface chip.
结合第二方面, 在第一种可能的实现方式中, 所述传输控制单元, 具体 用于将所述第二地址信息发送至所述前端接口芯片, 以使得所述前端接口芯 片通过所述数据控制芯片的 PCI-E接口, 以直接内存访问 DMA方式对所述 第二地址信息对应的 SSD写入所述第一数据或读取所述第二数据。  With reference to the second aspect, in a first possible implementation, the transmission control unit is specifically configured to send the second address information to the front-end interface chip, so that the front-end interface chip passes the data The PCI-E interface of the control chip writes the first data or reads the second data to the SSD corresponding to the second address information in a direct memory access DMA manner.
结合第二方面, 在第二种可能的实现方式中, 所述传输控制单元, 具体 用于从与所述数据控制芯片相连接的内存中获取所述第一数据, 并根据所述 第二地址信息将所述第一数据写入对应的所述 SSD, 所述第一数据是所述前 端接口芯片通过所述数据控制芯片传输至所述内存; 或者, 根据所述第二地 址信息从对应的所述 SSD读取所述第二数据, 并将所述第二数据传输至与所 述数据控制芯片相连接的内存, 以使得所述前端接口芯片通过所述数据控制 芯片从所述内存读取所述第二数据。  With reference to the second aspect, in a second possible implementation, the transmission control unit is specifically configured to acquire the first data from a memory connected to the data control chip, and according to the second address Transmitting, by the information, the first data to the corresponding SSD, where the first data is transmitted by the front-end interface chip to the memory by using the data control chip; or, according to the second address information, corresponding to Reading, by the SSD, the second data, and transmitting the second data to a memory connected to the data control chip, so that the front-end interface chip reads from the memory through the data control chip The second data.
结合第二方面、 第二方面的第一种可能的实现方式、 或者第二方面的第 二种可能的实现方式, 在第三种可能的实现方式中, 还包括: 镜像保护单元, 用于在将写入所述 SSD的所述第一数据传输经过所述数据控制芯片时, 所述 数据控制芯片将所述数据进行镜像复制, 并将镜像复制的数据发送至与所述 数据控制芯片相连接的镜像 SSD。 With reference to the second aspect, the first possible implementation manner of the second aspect, or the second possible implementation manner of the second aspect, in a third possible implementation manner, the method further includes: a mirror protection unit, And when the first data to be written into the SSD is transmitted through the data control chip, the data control chip mirrors the data, and sends the mirrored data to the data control A mirrored SSD connected to the chip.
结合第二方面、 第二方面的第一种可能的实现方式、 或者第二方面的第 二种可能的实现方式, 在第四种可能的实现方式中, 还包括: 校验保护单元, 用于在将写入所述 SSD的所述第一数据传输经过所述数据控制芯片时, 所述 数据控制芯片对所述数据进行校验信息计算, 并将所述校验信息写入所述 With the second aspect, the first possible implementation of the second aspect, or the second possible implementation of the second aspect, in a fourth possible implementation, the method further includes: a check protection unit, configured to: When the first data written to the SSD is transmitted through the data control chip, the data control chip performs verification information calculation on the data, and writes the verification information into the
SSD中的校验 SSD。 Verification SSD in SSD.
第三方面, 提供一种阵列控制器, 包括: 前端接口芯片、 固态硬盘 SSD、 以及本发明所述的数据控制芯片; 所述数据控制芯片通过 PCI-E接口分别与 所述 SSD和前端接口芯片通信连接。  In a third aspect, an array controller is provided, including: a front end interface chip, a solid state hard disk SSD, and a data control chip according to the present invention; and the data control chip separately interfaces with the SSD and the front end interface chip through a PCI-E interface Communication connection.
结合第三方面, 在第一种可能的实现方式中, 还包括: 镜像 SSD; 所述 数据控制芯片通过 PCI-E接口与所述镜像 SSD通信连接; 所述镜像 SSD, 用 于从所述数据控制芯片接收镜像复制的数据。  With reference to the third aspect, in a first possible implementation, the method further includes: a mirroring SSD; the data control chip is communicably connected to the mirrored SSD through a PCI-E interface; and the mirrored SSD is configured to use the data The control chip receives the data copied by the image.
结合第三方面, 在第二种可能的实现方式中, 还包括: 内存; 所述数据 控制芯片通过 PCI-E接口与所述内存连接; 所述内存, 用于从所述前端接口 芯片接收第一数据, 以使得所述数据控制芯片从所述内存获取所述第一数据 写入所述 SSD;或者,从所述数据控制芯片接收从所述 SSD读取的第二数据, 以使得所述前端接口芯片从所述内存获取所述第二数据。  With reference to the third aspect, in a second possible implementation, the method further includes: a memory; the data control chip is connected to the memory through a PCI-E interface; and the memory is configured to receive the first interface chip from the front end interface chip. a data, such that the data control chip acquires the first data from the memory and writes the SSD; or receives, from the data control chip, second data read from the SSD, such that the data The front end interface chip acquires the second data from the memory.
本发明提供的数据处理方法和设备的技术效果是: 数据控制芯片通过釆 用 PCI-E接口分别与所述 SSD和前端接口芯片通信连接, 并通过所述 PCI-E 接口在两者之间传输数据, 该 PCI-E接口的 IOPS能力较高, 能够适应 SSD 组成的磁盘阵列的性能需求。 附图说明 图 1为本发明数据处理方法一实施例的应用结构示意图;  The technical effects of the data processing method and device provided by the present invention are: The data control chip is respectively connected to the SSD and the front-end interface chip by using a PCI-E interface, and is transmitted between the two through the PCI-E interface. Data, the PCI-E interface has high IOPS capability and can accommodate the performance requirements of disk arrays composed of SSDs. BRIEF DESCRIPTION OF DRAWINGS FIG. 1 is a schematic diagram of an application structure of an embodiment of a data processing method according to the present invention;
图 2为本发明数据处理方法一实施例的流程示意图;  2 is a schematic flowchart of an embodiment of a data processing method according to the present invention;
图 3为本发明数据处理方法另一实施例的应用结构示意图;  3 is a schematic structural diagram of an application of another embodiment of a data processing method according to the present invention;
图 4为本发明数据处理方法另一实施例的无保护流程示意图;  4 is a schematic diagram of an unprotected process of another embodiment of a data processing method according to the present invention;
图 5为本发明数据处理方法另一实施例的镜像保护流程示意图; 图 6为本发明数据处理方法另一实施例的校验保护流程示意图; 图 7为本发明数据处理方法又一实施例的流程示意图; FIG. 5 is a schematic diagram of a mirror image protection process according to another embodiment of a data processing method according to the present invention; FIG. FIG. 6 is a schematic diagram of a verification protection process according to another embodiment of a data processing method according to the present invention; FIG. 7 is a schematic flowchart of still another embodiment of a data processing method according to the present invention;
图 8为本发明数据控制芯片一实施例的结构示意图;  8 is a schematic structural diagram of an embodiment of a data control chip according to the present invention;
图 9为本发明数据控制芯片另一实施例的结构示意图。 具体实施方式 为使本发明的目的、 技术方案和优点更加清楚, 下面结合附图对本发明 具体实施例作进一步的详细描述。  FIG. 9 is a schematic structural diagram of another embodiment of a data control chip according to the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS In order to make the objects, technical solutions and advantages of the present invention more comprehensible, the embodiments of the present invention are further described in detail below with reference to the accompanying drawings.
实施例一  Embodiment 1
图 1为本发明数据处理方法一实施例的应用结构示意图, 图 2为本发明 数据处理方法一实施例的流程示意图。  FIG. 1 is a schematic diagram of an application structure of an embodiment of a data processing method according to the present invention, and FIG. 2 is a schematic flowchart of an embodiment of a data processing method according to the present invention.
如图 1所示, 该数据控制芯片通常可以应用于固态存储阵列控制器中, 该固态存储阵列控制器用于连接业务服务器和磁盘阵列, 本实施例的磁盘阵 列是由 SSD组成的存储阵列, 其中可以包括多个 SSD。 固态存储阵列控制器 中还包括前端接口芯片, 该前端接口芯片用于与业务服务器连接及进行数据 传输, 数据控制芯片用于与 SSD阵列连接。  As shown in FIG. 1, the data control chip can be generally applied to a solid-state storage array controller for connecting a service server and a disk array. The disk array of this embodiment is a storage array composed of SSDs, wherein Multiple SSDs can be included. The solid state storage array controller also includes a front end interface chip for connecting to a service server and for data transmission, and a data control chip for connecting to the SSD array.
固态存储阵列控制器相当于业务服务器和 SSD之间的桥梁, 例如, 业务 服务器将数据写入 SSD, 或者, 业务服务器从 SSD读取数据, 该写入或者读 取数据的过程都是通过阵列控制器控制执行。 写入时, 数据要经过前端接口 芯片、数据控制芯片传输至 SSD;读取时,数据要从 SSD经过数据控制芯片、 前端接口芯片传输至业务服务器。 本实施例中, 数据控制芯片与其他设备的 连接接口均采用 PCI-E ( Peripheral Component Interconnect Express )接口, 例 如, 通过 PCI-E接口分别与所述 SSD和前端接口芯片通信; 因此, 上述在将 第一数据写入 SSD的过程或者从 SSD中读取第二数据的过程中,在数据控制 芯片中的传输实际上是通过 PCI-E通道传输的 (具有 PCI-E接口则表示在芯 片内部是通过 PCI-E通道传输) 。 此外, 本发明实施例的数据控制芯片 SSD 例如可以是 PCI-E接口的 SSD组成的存储阵列。  The solid-state storage array controller is equivalent to the bridge between the service server and the SSD. For example, the service server writes data to the SSD, or the service server reads data from the SSD. The process of writing or reading data is controlled by the array. Control execution. When writing, the data is transmitted to the SSD through the front-end interface chip and the data control chip; when reading, the data is transmitted from the SSD through the data control chip and the front-end interface chip to the service server. In this embodiment, the connection interface between the data control chip and other devices adopts a PCI-E (Peripheral Component Interconnect Express) interface, for example, communicates with the SSD and the front-end interface chip through a PCI-E interface respectively; therefore, the above In the process of writing the first data to the SSD or reading the second data from the SSD, the transmission in the data control chip is actually transmitted through the PCI-E channel (with the PCI-E interface, it is indicated inside the chip) Transmission via PCI-E channel). In addition, the data control chip SSD of the embodiment of the present invention may be, for example, a storage array composed of SSDs of a PCI-E interface.
如图 2所示, 本实施例的数据处理方法主要描述数据控制芯片是如何控 制业务服务器与 SSD之前的数据传输的; 可以包括:  As shown in FIG. 2, the data processing method in this embodiment mainly describes how the data control chip controls the data transmission before the service server and the SSD;
201、 数据控制芯片从前端接口芯片获取第一地址信息; 其中, 所述第一地址信息用于表示要写入第一数据的地址或者要读取第 二数据的地址,该第一数据是要写入固态硬盘 SSD、第二数据是要从所述 SSD 读取的, 该第一地址信息包括: 例如是要写入的地址和长度, 或者是要读取 的地址和长度。 该第一地址信息可以是业务服务器在要进行写入或读取数据 的操作时, 将数据对应的该第一地址信息发送至前端接口芯片的, 再由该前 端接口芯片传输至数据控制芯片。 201. The data control chip acquires first address information from the front end interface chip. The first address information is used to indicate an address to be written into the first data or an address to read the second data, the first data is to be written into the solid state hard disk SSD, and the second data is to be from the SSD The first address information that is read includes: for example, the address and length to be written, or the address and length to be read. The first address information may be that the service server sends the first address information corresponding to the data to the front-end interface chip when the operation is to be written or read, and then transmitted by the front-end interface chip to the data control chip.
需要说明的是, 本实施例中的数据控制芯片从前端接口芯片获取第一地 址信息, 可以是数据控制芯片从前端接口芯片直接获取, 此时数据控制芯片 与前端接口芯片两者直接连接; 或者, 也可以是数据控制芯片从前端接口芯 片间接获取, 此时数据控制芯片与前端接口芯片之间例如通过 PCI-E交换芯 片连接, 这种情况下第一地址信息是由前端接口芯片传输至 PCI-E交换芯片 再传输至数据控制芯片, PCI-E交换芯片与数据控制芯片仍是通过 PCI-E接 口连接。  It should be noted that the data control chip in this embodiment obtains the first address information from the front-end interface chip, and the data control chip can be directly obtained from the front-end interface chip, and the data control chip and the front-end interface chip are directly connected; Alternatively, the data control chip may be indirectly obtained from the front-end interface chip. At this time, the data control chip and the front-end interface chip are connected by, for example, a PCI-E switch chip. In this case, the first address information is transmitted from the front-end interface chip to the PCI. The -E switch chip is transferred to the data control chip, and the PCI-E switch chip and the data control chip are still connected through the PCI-E interface.
202、 所述数据控制芯片根据所述第一地址信息得到第二地址信息, 所述 第二地址信息用于表示所述第一地址信息在固态硬盘 SSD对应的位置;  202. The data control chip obtains second address information according to the first address information, where the second address information is used to indicate that the first address information is at a location corresponding to the SSD of the solid state drive;
其中, 数据控制芯片将根据 201中获取的第一地址信息, 计算出应该由 哪些 SSD上的哪部分存储区域接收要写入的数据,或者计算出该由哪些 SSD 上的哪部分存储区域提供要读取的数据, 并得到这些 SSD及其存储区域对应 的第二地址信息, 该第二地址信息包括: 上述的要写入或读取的 SSD的地址 和长度。通过该步骤,数据控制芯片实际上是得到了应该将数据写入哪些 SSD 或者从哪些 SSD获取要读取的数据。  The data control chip calculates, according to the first address information acquired in 201, which part of the storage area on which the SSD should receive the data to be written, or calculates which part of the storage area on which the SSD is to be provided. Reading the data, and obtaining the second address information corresponding to the SSD and the storage area thereof, the second address information comprising: the address and the length of the SSD to be written or read. Through this step, the data control chip actually obtains which SSDs should be written to the data or from which SSDs to acquire the data to be read.
203、 所述数据控制芯片通过所述 PCI-E接口, 在所述前端接口芯片与所 述第二地址信息对应的 SSD之间传输所述第一数据或第二数据;  203. The data control chip transmits the first data or the second data between the front-end interface chip and the SSD corresponding to the second address information by using the PCI-E interface.
其中, 所述的传输数据包括: 传输从所述前端接口芯片至 SSD的要写入 的第一数据、 以及传输从所述 SSD至前端接口芯片的要读取的第二数据。  The transmitting data includes: transmitting first data to be written from the front-end interface chip to the SSD, and transmitting second data to be read from the SSD to the front-end interface chip.
并且, 传输的要写入的第一数据或读取的第二数据, 均可以包括两种方 式: 一种方式是, 数据控制芯片将第二地址信息发送至前端接口芯片, 由前 端接口芯片以直接内存访问 DMA方式直接将第一数据写入 SSD、 或者直接 从 SSD读取第二数据, 数据控制芯片相当于为该访问提供了数据传输通道。 另一种方式是, 由数据控制芯片自身根据第二地址信息将第一数据写入 SSD 或者从 SSD读取第二数据, 该第一数据或第二数据也通过数据控制芯片传输 至前端接口芯片。 Moreover, the first data to be written or the second data to be read may include two ways: One way is that the data control chip sends the second address information to the front-end interface chip, and the front-end interface chip The direct memory access DMA mode directly writes the first data to the SSD, or directly reads the second data from the SSD, and the data control chip is equivalent to providing a data transmission channel for the access. Another way is that the data control chip itself writes the first data to the SSD according to the second address information. Or reading the second data from the SSD, the first data or the second data is also transmitted to the front-end interface chip through the data control chip.
需要说明的是, 本实施例中前端接口芯片与 SSD之间进行数据传输, 是 通过数据控制芯片进行的, 假如涉及到传输过程中的一些数据处理, 例如数 据镜像、 数据校验等相关数据保护的处理, 也是由数据控制芯片执行。 上述 数据传输过程以及所述的数据保护的处理, 通过由数据控制芯片执行, 这样 就减轻了阵列控制器中的中央处理器 CPU ( Central Processing Unit , 简称: CPU ) 的负担, 使得 CPU能够用于其他高级特性(例如快照、 重删等)的处 理。  It should be noted that, in this embodiment, data transmission between the front-end interface chip and the SSD is performed by the data control chip, if some data processing in the transmission process, such as data mirroring, data verification, and the like, is involved. The processing is also performed by the data control chip. The above data transmission process and the processing of the data protection are performed by the data control chip, thereby reducing the burden of the central processing unit (CPU) in the array controller, so that the CPU can be used for Processing of other advanced features such as snapshots, deduplication, and so on.
本实施例的数据处理方法, 实现适应 SSD组成的磁盘阵列的性能需求的 效果是如下的原理:原来的后端控制芯片由于是针对传统的机械硬盘设计的, 其传输接口以及数据传输所遵循的传输协议都是与机械硬盘适应的, IOPS能 力有限, 所以无法满足 SSD的较高的 IOPS能力; 而本实施例中的数据控制 芯片, 通过 PCI-E接口与 SSD及其他设备通信, 相应的, 数据传输所遵循的 传输协议也会釆用 PCI-E协议, 即数据控制芯片从硬件上 (PCI-E接口 )和 软件上( PCI-E协议 )都改变为 PCI-E方式, 该 PCI-E方式的传输 IOPS能力 较高, 完全能够满足 SSD的高 IOPS性能, 有利于充分发挥 SSD的性能。  The data processing method of the embodiment achieves the performance requirement of adapting the performance of the disk array composed of the SSD is the following principle: the original back-end control chip is designed for the traditional mechanical hard disk, and the transmission interface and the data transmission are followed. The transmission protocol is adapted to the mechanical hard disk, and the IOPS capability is limited, so the higher IOPS capability of the SSD cannot be satisfied; and the data control chip in this embodiment communicates with the SSD and other devices through the PCI-E interface, correspondingly, The transmission protocol followed by data transmission also uses the PCI-E protocol, that is, the data control chip is changed from hardware (PCI-E interface) and software (PCI-E protocol) to PCI-E mode, the PCI-E. The high transmission IOPS capability of the mode can fully meet the high IOPS performance of the SSD, which is beneficial to the full performance of the SSD.
实施例二  Embodiment 2
数据控制芯片所传输的前端接口芯片与 SSD之间的数据, 可能是要写入 SSD的第一数据、 或者也可能是从 SSD读取的第二数据。 并且, 前端接口芯 片与 SSD之间传输数据的方式, 即相当于前端接口芯片侧访问 SSD的方式, 可以是字符设备访问方式或者块设备访问方式, 本发明实施例的数据控制芯 片可以支持这两种方式的访问, 即支持这两种方式的数据写入或者读取。  The data between the front-end interface chip and the SSD transmitted by the data control chip may be the first data to be written to the SSD, or may be the second data read from the SSD. Moreover, the manner of transmitting data between the front-end interface chip and the SSD is equivalent to the manner in which the front-end interface chip side accesses the SSD, and may be a character device access mode or a block device access mode. The data control chip of the embodiment of the present invention can support the two. The way to access, that is, to support the two ways of data writing or reading.
本实施例主要描述数据控制芯片对字符设备访问方式的支持, 详细说明 在字符设备访问方式下前端接口芯片与 SSD之间的数据传输过程。 所述的字 符设备访问方式下, 前端接口芯片能够釆用直接内存访问 ( Direct Memory Access, 简称: DMA )方式直接访问 SSD。  This embodiment mainly describes the data control chip supporting the access mode of the character device, and details the data transmission process between the front-end interface chip and the SSD in the character device access mode. In the character device access mode, the front-end interface chip can directly access the SSD by using Direct Memory Access (DMA).
图 3为本发明数据处理方法另一实施例的应用结构示意图, 该结构是一 种可选的阵列控制器结构, 本发明实施例的数据控制芯片设置在该阵列控制 器中。数据控制芯片支持多个 PCI-E接口:例如,通过一个 PCI-E接口与 CPU 相连接,作为 CPU与该数据控制芯片的数据交互通道。通过一个或多个 PCI-E 接口与前端接口芯片相连接, 作为业务数据、 管理数据的通道(业务数据是 要写入 SSD或从 SSD读取的, 管理数据是由 CPU存储, 例如可以是业务服 务器通过数据控制芯片向 CPU传输的 )。 通过一个 PCI-E接口与数据镜像控 制芯片相连, 作为镜像复制数据的传输通道, 该数据镜像控制芯片所连接的 数据镜像通道的目的是为了将业务服务器向 SSD写入的数据保存到多个阵列 控制器上, 以消除阵列控制器的单点故障; 即图 3所示的是一个阵列控制器 的结构, 该数据镜像控制芯片是连接到另一个阵列控制器, 负责在阵列控制 器之间进行镜像复制数据的传输以进行镜像数据保护。 通过多个 PCI-E接口 连接后端的多个 SSD组成的 SSD阵列, 这些 SSD的接口都是 PCI-E接口。 FIG. 3 is a schematic diagram of an application structure of another embodiment of a data processing method according to the present invention. The structure is an optional array controller structure. The data control chip of the embodiment of the present invention is disposed in the array controller. The data control chip supports multiple PCI-E interfaces: for example, through a PCI-E interface and CPU Connected as a data interaction channel between the CPU and the data control chip. Connected to the front-end interface chip through one or more PCI-E interfaces, as a channel for business data and management data (business data is to be written to or read from the SSD, and the management data is stored by the CPU, for example, it can be a service The server transmits to the CPU through the data control chip). The data mirroring control chip is connected to the data mirroring control chip through a PCI-E interface, and the data mirroring channel connected to the data mirroring control chip is used to save the data written by the service server to the SSD to multiple arrays. On the controller, to eliminate the single point of failure of the array controller; that is, Figure 3 shows the structure of an array controller that is connected to another array controller and is responsible for routing between the array controllers. The copy of the mirrored copy data is protected by mirrored data. The SSD array consisting of multiple SSDs at the back end is connected through multiple PCI-E interfaces, and the interfaces of these SSDs are all PCI-E interfaces.
可选的, 该数据控制芯片自身可以直接连接单独的内存, 例如图 3中所 示的连接数据控制芯片的内存, 比如在块设备访问方式时可以设置该内存; 而在本实施例的字符设备访问方式中, 由于前端接口芯片可以通过 DMA方 式直接访问 SSD , 因此, 所述的连接数据控制芯片的内存可以不设置。  Optionally, the data control chip itself can be directly connected to a separate memory, such as the memory connected to the data control chip shown in FIG. 3, such as when the block device access mode is set; and the character device in this embodiment. In the access mode, since the front-end interface chip can directly access the SSD through the DMA method, the memory of the connection data control chip may not be set.
由于 SSD组成的 SSD阵列的类型也有很多种,例如,如果按照数据保护 的方式划分, 一般可以划分为三类: 无保护、 镜像保护、 校验保护; 例如, RAID-0属于无保护类型; RAID-1、 RAID-10属于镜像保护类型, 即通过将 数据复制多份到不同的物理介质比如不同的阵列控制器来提供数据保护; RAID-5, RAID-6属于校验保护类型, 即通过数据校验方式来提供数据保护。 下面将分别介绍上述的三种类型的数据保护方式下, 数据控制芯片是如何控 制前端接口芯片和 SSD之间的数据传输的, 在描述中的 401、 402等仅用于 对各处理进行区分, 并不对其执行顺序进行限定。  There are many types of SSD arrays composed of SSDs. For example, if they are classified according to data protection, they can be divided into three categories: unprotected, mirrored, and verified. For example, RAID-0 is unprotected; RAID -1, RAID-10 is a mirror protection type, which provides data protection by copying multiple copies of data to different physical media such as different array controllers. RAID-5, RAID-6 is a type of parity protection, that is, data is passed. Check the way to provide data protection. The following describes the data protection chip in the above three types of data protection mode, how the data control chip controls the data transmission between the front-end interface chip and the SSD. The descriptions of 401, 402, etc. are only used to distinguish the processing. The order of execution is not limited.
图 4为本发明数据处理方法另一实施例的无保护流程示意图, 如图 4所 示, 可以包括:  FIG. 4 is a schematic diagram of an unprotected process according to another embodiment of the data processing method of the present invention. As shown in FIG. 4, the method may include:
401、 前端接口芯片从业务服务器获取要写入 SSD的数据及对应的第一 地址信息, 并将该第一地址信息发送至数据控制芯片;  401. The front-end interface chip obtains data to be written into the SSD and the corresponding first address information from the service server, and sends the first address information to the data control chip.
其中,前端接口芯片与业务服务器之间, 一般通过 SCSI ( Small Computer System Interface, 小型计算机系统接口, 是种接口总线, 具备与多种类型的 外设进行通信)协议进行数据交互; 前端接口芯片处理完与业务服务器的协 议交互后,从业务服务器接收要写入 SSD的业务数据,该数据称为第一数据; 该前端接口芯片还接收该业务数据对应的第一地址信息, 所述第一地址信息 用于表示将写入固态硬盘 SSD的所述业务数据的地址, 该第一地址信息例如 包括将写入的起始地址和长度,比如要写入数据的起始地址是 120,长度是 8; 该 120是 SSD上的扇区的标识, 所述 8表示 8个扇区, 即从标识是 120的扇 区开始写入数据, 并连续写入 8个扇区。 前端接口芯片会将该第一地址信息发送至数据控制芯片。 Among them, the front-end interface chip and the service server generally use SCSI (Small Computer System Interface, is a kind of interface bus, which has communication with various types of peripherals) protocol for data interaction; front-end interface chip processing After the protocol interaction with the service server is completed, the service data to be written into the SSD is received from the service server, and the data is referred to as the first data; The front-end interface chip further receives first address information corresponding to the service data, where the first address information is used to indicate an address of the service data to be written into the SSD, and the first address information includes, for example, a write The starting address and length, for example, the starting address of the data to be written is 120, and the length is 8; the 120 is the identifier of the sector on the SSD, and the 8 represents 8 sectors, that is, the sector from the identifier 120. Start writing data and write 8 sectors in succession. The front end interface chip sends the first address information to the data control chip.
402、数据控制芯片根据第一地址信息得到第二地址信息, 所述第二地址 信息用于表示所述第一地址信息在固态硬盘 SSD对应的位置;  The data control chip obtains the second address information according to the first address information, where the second address information is used to indicate that the first address information is at a location corresponding to the SSD of the solid state drive;
其中, 数据控制芯片可以根据所述第一地址信息, 得到与所述第一地址 信息对应的用于存储所述数据的 SSD的第二地址信息;例如,对于由多个 SSD 组成的 SSD阵列, 该第二地址信息实际上是表示上述 401中所述的从 120开 始的 8个扇区是位于哪个 SSD上, 并且是位于 SSD的哪个位置。  The data control chip may obtain second address information of the SSD for storing the data corresponding to the first address information according to the first address information; for example, for an SSD array composed of multiple SSDs, The second address information actually indicates which SSD the eight sectors starting from 120 described in the above 401 are located on, and which position is located in the SSD.
具体的, 数据控制芯片中设置有条带化规则, 根据该条带化规则可以将 SSD阵列中的多个 SSD的存储空间分为几个条带,每个条带都是由各个 SSD 的一部分组合形成的, 所述每个条带所包括的各 SSD的部分又都包括多个扇 区。 数据控制芯片可以根据获得的第一地址信息、 以及该条带化规则, 计算 出该要写入的业务数据应该由哪些 SSD接收,并且是由该 SSD的哪些扇区接 收。 例如, 上述的从标识是 120的扇区开始写入数据并连续写入 8个扇区, 即相当于要在扇区标识是 120〜127的这 8个扇区写入, 数据控制芯片就可以 计算得到这 8个扇区是位于 SSD阵列中的第一个 SSD, 并且是位于该第一个 SSD中的第一个条带上, 该第一个 SSD及第一个条带的位置信息就称为第二 地址信息。  Specifically, the data control chip is provided with a striping rule, according to which the storage space of the plurality of SSDs in the SSD array can be divided into several strips, each strip being part of each SSD. Formed in combination, each portion of each SSD included in each strip includes a plurality of sectors. The data control chip can calculate which SSDs the service data to be written should be received according to the obtained first address information and the striping rule, and which sectors of the SSD are received. For example, the above-mentioned data is written from the sector with the identifier of 120 and written continuously for 8 sectors, that is, equivalent to writing in the 8 sectors whose sector identifier is 120 to 127, the data control chip can It is calculated that the eight sectors are the first SSD located in the SSD array, and are located on the first strip in the first SSD, and the location information of the first SSD and the first strip is Called the second address information.
403、 数据控制芯片将所述第二地址信息发送至所述前端接口芯片; 其中, 数据控制芯片将获取的用于写入业务数据的 SSD对应的第二地址 信息,比如上述的 SSD地址及 SSD上的具体位置等信息发送至前端接口芯片。  403. The data control chip sends the second address information to the front-end interface chip, where the data control chip acquires second address information corresponding to the SSD for writing service data, such as the foregoing SSD address and SSD. Information such as the specific location on the front side is sent to the front-end interface chip.
404、 前端接口芯片以直接内存访问 DMA方式对所述第二地址信息对应 的 SSD写入所述第一数据;  404. The front-end interface chip writes the first data to the SSD corresponding to the second address information by using a direct memory access DMA.
其中, 由于本实施例釆用的是字符设备访问方式, 所以前端接口芯片在 接收到数据控制芯片发送的第二地址信息后, 将要写入的业务数据直接写入 到对应的 SSD中。 这种情况下, 数据控制芯片可以不设置相连接的内存。 本实施例中, 前端接口芯片与 SSD之间是通过数据控制芯片相连通的, 因此即使前端接口芯片直接访问 SSD,数据的传输仍然要经过数据控制芯片; 并且, 数据通过数据控制芯片传输是通过该芯片中的 PCI-E通道进行传输, 经过数据控制芯片的 PCI-E接口进入芯片, 并经过与 SSD连接的 PCI-E接口 传输至 SSD。 In the embodiment, the character device access mode is used. After receiving the second address information sent by the data control chip, the front-end interface chip directly writes the service data to be written into the corresponding SSD. In this case, the data control chip can not set the connected memory. In this embodiment, the front-end interface chip and the SSD are connected through the data control chip, so even if the front-end interface chip directly accesses the SSD, the data transmission still passes through the data control chip; and, the data is transmitted through the data control chip. The PCI-E channel in the chip is transmitted, enters the chip through the PCI-E interface of the data control chip, and is transmitted to the SSD through the PCI-E interface connected to the SSD.
上述的步骤 401-404是对第一数据写入 SSD的过程进行描述, 下面通过 步骤 405-408对从 SSD读取第二数据的过程进行描述:  The above steps 401-404 describe the process of writing the first data to the SSD. The following describes the process of reading the second data from the SSD through steps 405-408:
405、 前端接口芯片从业务服务器获取要从 SSD读取的第二数据对应的 第一地址信息, 并将该第一地址信息发送至数据控制芯片;  405. The front-end interface chip obtains first address information corresponding to the second data to be read from the SSD from the service server, and sends the first address information to the data control chip.
其中, 业务服务器要从 SSD读取业务数据时, 会将数据的第一地址信息 通知前端接口芯片, 包括数据的地址和长度; 前端接口芯片会将该第一地址 信息发送至数据控制芯片。  When the service server reads the service data from the SSD, it notifies the front-end interface chip of the first address information of the data, including the address and length of the data; the front-end interface chip sends the first address information to the data control chip.
406、数据控制芯片根据第一地址信息得到第二地址信息, 所述第二地址 信息用于表示所述第一地址信息在固态硬盘 SSD对应的位置;  406. The data control chip obtains second address information according to the first address information, where the second address information is used to indicate that the first address information is at a location corresponding to the SSD of the solid state drive;
其中, 数据控制芯片可以根据所述第一地址信息, 得到与所述第一地址 信息对应的用于存储所述数据的 SSD的第二地址信息。 同样, 数据控制芯片 也是根据预先存储的条带化规则以及第一地址信息, 计算出要读取的业务数 据应该由哪些 SSD提供,并得到这些 SSD的地址以及读取位置,可以称为第 二地址信息。  The data control chip may obtain second address information of the SSD for storing the data corresponding to the first address information according to the first address information. Similarly, the data control chip also calculates which SSDs the service data to be read should be provided according to the pre-stored striping rules and the first address information, and obtains the addresses and read positions of the SSDs, which may be referred to as a second. Address information.
407、 数据控制芯片将所述第二地址信息发送至所述前端接口芯片;  407. The data control chip sends the second address information to the front end interface chip.
408、 前端接口芯片以直接内存访问 DMA方式 , 从所述第二地址信息对 应的 SSD读取第二数据;  408. The front-end interface chip reads the second data from the SSD corresponding to the second address information by using a direct memory access DMA mode.
其中, 由于本实施例釆用的是字符设备访问方式, 所以前端接口芯片在 接收到数据控制芯片发送的第二地址信息后, 将直接从对应的 SSD中读取所 述业务数据并传递至业务服务器。  In the embodiment, the character device access mode is used. After receiving the second address information sent by the data control chip, the front-end interface chip reads the service data directly from the corresponding SSD and transmits the service data to the service. server.
本实施例的字符设备访问方式, 由于是前端接口芯片直接访问 SSD, 可 以极大的缩减整体 10路径, 也能够提升该阵列控制器的 IOPS性能。  In the character device access mode of this embodiment, since the front-end interface chip directly accesses the SSD, the overall 10 path can be greatly reduced, and the IOPS performance of the array controller can also be improved.
图 5为本发明数据处理方法另一实施例的镜像保护流程示意图, 该图 5 仅示出了与图 4流程相区别的步骤, 并分别对每个步骤相对于图 4中对应的 步骤的区别进行了说明, 而对于相同的步骤未在图 5示出; 具体的: 501、 在要将第一数据写入 SSD时, 数据控制芯片根据要写入的第一数 据对应的第一地址信息, 得到对应的第二地址信息; FIG. 5 is a schematic diagram of a mirror protection process according to another embodiment of the data processing method of the present invention. FIG. 5 only shows the steps different from the flow of FIG. 4, and the difference between each step and the corresponding step in FIG. 4 respectively. The description is made, and the same steps are not shown in Figure 5; 501, when the first data is to be written into the SSD, the data control chip obtains the corresponding second address information according to the first address information corresponding to the first data to be written;
其中, 该步骤与 402步骤的区别在于, 数据控制芯片在计算 SSD的第二 地址信息时, 不会将镜像 SSD计算进去, 即得到的第二地址信息对应的 SSD 不会是镜像 SSD。该镜像 SSD是与图 3中的数据镜像控制芯片相连接的另一 个阵列控制器连接的 SSD。  The difference between the step and the step 402 is that the data control chip does not calculate the image SSD when calculating the second address information of the SSD, that is, the SSD corresponding to the obtained second address information is not a mirrored SSD. The mirrored SSD is an SSD connected to another array controller connected to the data mirroring control chip of FIG.
502、 前端接口芯片以直接内存访问 DMA方式对所述第二地址信息对应 的 SSD写入所述第一数据; 并且, 数据控制芯片对所述数据进行镜像复制, 将镜像复制的数据发送至镜像 SSD;  502. The front-end interface chip writes the first data to the SSD corresponding to the second address information by using a direct memory access DMA mode; and the data control chip mirrors the data, and sends the mirrored data to the mirror. SSD;
其中, 该步骤与 404步骤的区别在于, 当要写入 SSD的业务数据经过所 述数据控制芯片时, 为了提高数据存储的安全可靠性, 保证在其中一个存储 数据故障时能够从镜像数据恢复,数据控制芯片将根据预先存储的镜像规则, 将所述业务数据进行镜像复制 , 即将数据复制多份, 分别写入镜像 SSD中 , 从而实现镜像保护功能。  The difference between the step and the step 404 is that when the service data to be written into the SSD passes through the data control chip, in order to improve the security and reliability of the data storage, it is ensured that the image data can be recovered from the mirror data when one of the storage data is faulty. The data control chip mirrors the service data according to the pre-stored mirroring rules, that is, copies the data into multiple copies and writes them into the mirrored SSD to implement the image protection function.
503、 在要从 SSD中读取第二数据时, 数据控制芯片根据要读取的第二 数据对应的第一地址信息, 得到对应的第二地址信息;  503. When the second data is to be read from the SSD, the data control chip obtains the corresponding second address information according to the first address information corresponding to the second data to be read.
其中, 该步骤与 406步骤的区别在于, 数据控制芯片在计算 SSD的第二 地址信息时, 可以将镜像 SSD计算进去, 即得到的第二地址信息对应的 SSD 也有可能是镜像 SSD。 例如, 当该数据控制芯片所连接的 SSD发生故障时, 其可以根据镜像规则,选择镜像 SSD中的某一块 SSD来提供数据,选择的策 略可以是选择其中相对较闲的 SSD, 也可以是随机选择。  The difference between the step and the step 406 is that the data control chip can calculate the image SSD when calculating the second address information of the SSD, that is, the SSD corresponding to the obtained second address information may also be a mirrored SSD. For example, when the SSD connected to the data control chip fails, it may select a certain SSD in the mirrored SSD to provide data according to the mirroring rule. The selected strategy may be to select a relatively idle SSD, or may be random. select.
504、 前端接口芯片以直接内存访问 DMA方式 , 从所述第二地址信息对 应的 SSD读取所述第二数据;  504. The front-end interface chip reads the second data from the SSD corresponding to the second address information by using a direct memory access DMA mode.
其中, 该步骤与 408步骤的区别在于, 若在 503中数据控制芯片返回给 前端接口芯片的是镜像 SSD对应的第二地址信息, 则本步骤中的前端接口芯 片是以 DMA方式直接从对应的镜像 SSD读取数据。  The difference between the step and the step 408 is that if the data control chip returns to the front-end interface chip in 503 is the second address information corresponding to the mirrored SSD, the front-end interface chip in this step is directly from the corresponding DMA mode. Mirror the SSD to read the data.
图 6为本发明数据处理方法另一实施例的校验保护流程示意图, 该图 6 仅示出了与图 4流程相区别的步骤, 并分别对每个步骤相对于图 4中对应的 步骤的区别进行了说明, 而对于相同的步骤未在图 6示出; 具体的:  FIG. 6 is a schematic diagram of a verification protection process according to another embodiment of the data processing method of the present invention, and FIG. 6 only shows steps different from the flow of FIG. 4, and respectively for each step relative to the corresponding step in FIG. The differences are explained, and the same steps are not shown in Figure 6;
601、 在要将第一数据写入 SSD时, 前端接口芯片以直接内存访问 DMA 方式对所述第二地址信息对应的 SSD写入所述数据; 并且, 数据控制芯片对 所述数据进行校验信息计算, 将校验信息写入校验 SSD; 601. When the first data is to be written into the SSD, the front-end interface chip accesses the DMA with direct memory. The method writes the data to the SSD corresponding to the second address information; and, the data control chip performs verification information calculation on the data, and writes the verification information into the verification SSD;
其中, 该步骤与 404步骤的区别在于, 在将写入所述 SSD的所述第一数 据传输经过所述数据控制芯片时, 数据控制芯片将对所述第一数据进行校验 信息计算, 得到校验信息, 并将所述校验信息写入所述 SSD中的校验 SSD; 该校验 SSD是在 SSD阵列中用于存储校验信息的设备,从而实现第一数据的 校验保护。  The difference between the step and the step 404 is: when the first data written to the SSD is transmitted through the data control chip, the data control chip performs the verification information on the first data to obtain Verifying the information, and writing the verification information to the verification SSD in the SSD; the verification SSD is a device for storing verification information in the SSD array, thereby implementing verification protection of the first data.
此外, 由于要写入的数据可以被条带的大小所整除, 所以不存在写惩罚 现象, 直接计算校验和也是可以的, 该校验和也称为校验信息。  In addition, since the data to be written can be divisible by the size of the stripe, there is no write penalty, and it is also possible to directly calculate the checksum, which is also called check information.
602、 在要从 SSD读取第二数据时, 数据控制芯片根据要读取的第二数 据对应的第一地址信息, 得到对应的第二地址信息;  602. When the second data is to be read from the SSD, the data control chip obtains the corresponding second address information according to the first address information corresponding to the second data to be read.
其中, 该步骤与 406步骤的区别在于, 例如, 当该数据控制芯片所连接 的 SSD中的某个 SSD发生故障时,如果数据控制芯片发现要读取的第二数据 就在该发生故障的 SSD上, 则此时数据控制芯片可以根据其余仍然正常工作 的 SSD存储的数据或信息(例如校验信息) , 就能够恢复出要读取的第二数 据, 并将该恢复的第二数据存储在某个正常的 SSD上。 数据控制芯片向前端 接口芯片返回第二地址信息对应的 SSD即为该存储恢复数据的 SSD。  The difference between the step and the step 406 is that, for example, when an SSD in the SSD connected to the data control chip fails, if the data control chip finds that the second data to be read is in the failed SSD In this case, the data control chip can recover the second data to be read according to the data or information (for example, the verification information) stored by the remaining SSDs that are still working normally, and store the restored second data in the data. On a normal SSD. The SSD corresponding to the second address information returned by the data control chip to the front-end interface chip is the SSD of the storage recovery data.
实施例三  Embodiment 3
本实施例主要描述数据控制芯片对块设备访问方式的支持, 说明在块设 备访问方式下前端接口芯片与 SSD之间的数据传输过程。 在这种方式下, 数 据传输流程可以参见图 3中所示的流向箭头 (图 3示出的是写入流程) , 此 时数据控制芯片是需要连接内存的, 用于緩存业务数据, 数据控制芯片内也 可以嵌入一个内存控制器, 用于控制数据向内存的传输。  This embodiment mainly describes the data control chip supporting the access mode of the block device, and illustrates the data transmission process between the front-end interface chip and the SSD in the block device access mode. In this way, the data transmission process can refer to the flow arrow shown in Figure 3 (the write flow is shown in Figure 3). At this time, the data control chip needs to be connected to the memory, used to cache the service data, and the data control. A memory controller can also be embedded in the chip to control the transfer of data to the memory.
图 7为本发明数据处理方法又一实施例的流程示意图, 本实施例对于块 设备访问方式下的处理流程, 与字符设备访问方式下的处理流程相同的步骤 不再赘述, 仅说明不同的处理步骤, 包括:  FIG. 7 is a schematic flowchart of another embodiment of a data processing method according to the present invention. The processing procedure in the access mode of the block device in the embodiment is the same as the processing flow in the access mode of the character device, and details are not described herein. Steps, including:
701、 前端接口芯片从业务服务器获取要写入 SSD的第一数据及对应的 第一地址信息; 并且, 前端接口芯片将获取的第一数据传输至与数据控制芯 片相连的内存中, 将第一地址信息发送至数据控制芯片;  701, the front-end interface chip obtains the first data to be written into the SSD and the corresponding first address information from the service server; and the front-end interface chip transmits the acquired first data to the memory connected to the data control chip, and the first The address information is sent to the data control chip;
其中, 本实施例的前端接口芯片会以 DMA的方式将第一数据传输至与 数据控制芯片相连的内存中, 如图 3的箭头线所示, 该第一数据也是先通过 PCI-E接口传输至数据控制芯片, 经过数据控制芯片后传输至内存。 The front interface chip of the embodiment transmits the first data to and from the DMA. In the memory connected to the data control chip, as shown by the arrow line in FIG. 3, the first data is first transmitted to the data control chip through the PCI-E interface, and then transmitted to the memory after the data control chip.
可选的, 如果釆取镜像保护, 则在第一数据经过数据控制芯片时, 数据 控制芯片会对该第一数据进行镜像复制, 并将镜像复制的第一数据发送至相 邻的阵列控制器的镜像 SSD。  Optionally, if the image protection is captured, when the first data passes through the data control chip, the data control chip mirrors the first data, and sends the first data copied by the mirror to the adjacent array controller. Mirror SSD.
可选的, 如果釆取校验保护, 则在第一数据经过数据控制芯片时, 数据 控制芯片会对该第一数据进行校验信息计算, 得到校验信息。  Optionally, if the check protection is performed, when the first data passes through the data control chip, the data control chip performs check information calculation on the first data to obtain verification information.
702、 数据控制芯片根据第一地址信息, 得到对应的第二地址信息; 702. The data control chip obtains corresponding second address information according to the first address information.
703、数据控制芯片从相连接的内存中获取所述第一数据, 并根据所述第 二地址信息将所述第一数据写入对应的所述 SSD; 703, the data control chip obtains the first data from the connected memory, and writes the first data to the corresponding SSD according to the second address information;
本实施例中, 是由数据控制芯片自己将第一数据写入 SSD, 数据控制芯 片还要对该第一数据进行相关处理比如条带拆分等。  In this embodiment, the first data is written into the SSD by the data control chip itself, and the data control chip further performs related processing such as stripe splitting on the first data.
可选的, 如果釆取校验保护, 则在本步骤中数据控制芯片还要将计算得 到的校验信息发送至检验 SSD。  Optionally, if the check protection is taken, the data control chip further sends the calculated verification information to the verification SSD in this step.
704、 数据控制芯片删除内存中緩存的第一数据;  704. The data control chip deletes the first data cached in the memory.
其中, 数据控制芯片在将第一数据完整写入 SSD后, 数据控制芯片将删 除相连接的内存中的緩存数据;  Wherein, after the data control chip completely writes the first data into the SSD, the data control chip deletes the cached data in the connected memory;
可选的, 如果釆取镜像保护, 则在本步骤中数据控制芯片可以先发送命 令到与数据镜像控制芯片相连接的相邻阵列控制器, 指示删除该相邻阵列控 制器中緩存的第一数据, 然后再删除本地直连内存中的緩存数据。  Optionally, if the image protection is captured, in this step, the data control chip may first send a command to the adjacent array controller connected to the data mirror control chip, indicating to delete the first cache in the adjacent array controller. Data, and then delete the cached data in the local direct-attached memory.
705、 前端接口芯片从业务服务器获取要从 SSD读取的第二数据对应的 第一地址信息, 并将该第一地址信息发送至数据控制芯片;  705. The front-end interface chip obtains, from the service server, first address information corresponding to the second data to be read from the SSD, and sends the first address information to the data control chip.
706、 数据控制芯片根据第一地址信息, 得到对应的第二地址信息; 706. The data control chip obtains corresponding second address information according to the first address information.
707、 数据控制芯片根据所述第二地址信息从对应的所述 SSD读取所述 第二数据, 并将所述第二数据传输至与所述数据控制芯片相连接的内存; 707. The data control chip reads the second data from the corresponding SSD according to the second address information, and transmits the second data to a memory connected to the data control chip.
708、 前端接口芯片以直接内存访问 DMA方式, 通过所述数据控制芯片 从所述内存读取所述第二数据。  708. The front-end interface chip reads the second data from the memory by using the data control chip in a direct memory access DMA mode.
实施例四  Embodiment 4
图 8为本发明数据控制芯片一实施例的结构示意图, 该数据控制芯片可 以执行本发明任意实施例的方法, 如图 8所示, 该数据控制芯片可以包括: 信息接收单元 81、 信息处理单元 82和传输控制单元 83; 其中, 信息接收单元 81 , 用于从前端接口芯片获取第一地址信息, 所述第一地 址信息用于表示要写入第一数据的地址或者要读取第二数据的地址; FIG. 8 is a schematic structural diagram of an embodiment of a data control chip according to the present invention. The data control chip can perform the method of any embodiment of the present invention. As shown in FIG. 8, the data control chip can include: The information receiving unit 81, the information processing unit 82, and the transmission control unit 83; wherein the information receiving unit 81 is configured to acquire first address information from the front end interface chip, where the first address information is used to indicate that the first data is to be written. Address or address to read the second data;
信息处理单元 82, 用于根据所述第一地址信息得到第二地址信息, 所述 第二地址信息用于表示所述第一地址信息在固态硬盘 SSD对应的位置, 所述 数据控制芯片通过 PCI Express (PCI-E)接口分别与所述 SSD和前端接口芯片 通信连接;  The information processing unit 82 is configured to obtain second address information according to the first address information, where the second address information is used to indicate that the first address information is at a location corresponding to a solid state drive SSD, and the data control chip passes the PCI An Express (PCI-E) interface is respectively connected to the SSD and the front end interface chip;
传输控制单元 83 , 用于通过所述 PCI-E接口, 在所述前端接口芯片与所 述第二地址信息对应的 SSD之间传输所述第一数据或第二数据, 以使得将从 所述前端接口芯片接收的所述第一数据写入所述 SSD、或者从所述 SSD读取 所述第二数据传输至所述前端接口芯片。  a transmission control unit 83, configured to transmit, by using the PCI-E interface, the first data or the second data between the front-end interface chip and an SSD corresponding to the second address information, so that The first data received by the front end interface chip is written to the SSD, or the second data is read from the SSD and transmitted to the front end interface chip.
进一步的, 所述传输控制单元 83 , 具体用于将所述第二地址信息发送至 所述前端接口芯片,以使得所述前端接口芯片通过所述数据控制芯片的 PCI-E 接口, 以直接内存访问 DMA方式对所述第二地址信息对应的 SSD写入所述 第一数据或读取所述第二数据。  Further, the transmission control unit 83 is specifically configured to send the second address information to the front-end interface chip, so that the front-end interface chip passes the PCI-E interface of the data control chip to directly store The access DMA mode writes the first data or reads the second data to an SSD corresponding to the second address information.
进一步的, 所述传输控制单元 83 , 具体用于从与所述数据控制芯片相连 接的内存中获取所述第一数据, 并根据所述第二地址信息将所述第一数据写 入对应的所述 SSD, 所述第一数据是所述前端接口芯片通过所述数据控制芯 片传输至所述内存; 或者, 根据所述第二地址信息从对应的所述 SSD读取所 述第二数据, 并将所述第二数据传输至与所述数据控制芯片相连接的内存, 以使得所述前端接口芯片通过所述数据控制芯片从所述内存读取所述第二数 据。  Further, the transmission control unit 83 is specifically configured to acquire the first data from a memory connected to the data control chip, and write the first data into a corresponding one according to the second address information. The SSD, the first data is that the front-end interface chip is transmitted to the memory through the data control chip; or, the second data is read from the corresponding SSD according to the second address information, And transmitting the second data to a memory connected to the data control chip, so that the front end interface chip reads the second data from the memory through the data control chip.
图 9为本发明数据控制芯片另一实施例的结构示意图, 如图 9所示, 在 图 8所示结构的基础上, 本实施例的数据控制芯片还可以包括:  FIG. 9 is a schematic structural diagram of another embodiment of the data control chip of the present invention. As shown in FIG. 9, the data control chip of this embodiment may further include:
镜像保护单元 84,用于在将写入所述 SSD的所述第一数据传输经过所述 数据控制芯片时, 所述数据控制芯片将所述数据进行镜像复制, 并将镜像复 制的数据发送至与所述数据控制芯片相连接的镜像 SSD。  The image protection unit 84 is configured to: when the first data written to the SSD is transmitted through the data control chip, the data control chip mirrors the data, and sends the mirrored data to A mirrored SSD connected to the data control chip.
进一步的, 还可以包括: 校验保护单元 85, 用于在将写入所述 SSD的所 述第一数据传输经过所述数据控制芯片时, 所述数据控制芯片对所述数据进 行校验信息计算, 并将所述校验信息写入所述 SSD中的校验 SSD。 以上对本发明实施例的数据处理方法、 以及数据控制芯片的结构进行了 说明, 从中可以看到, 本发明实施例的数据控制芯片集成了 PCI-E交换以及 RAID数据处理的功能,例如如上所述的,该数据控制芯片与前端接口芯片和 SSD均是通过 PCI-E接口进行连接, 并且该芯片还能进行第一地址信息和第 二地址信息之间的地址转换、 数据保护等处理。 Further, the method further includes: a check protection unit 85, configured to: when the first data written into the SSD is transmitted through the data control chip, the data control chip performs verification information on the data Calculating, and writing the verification information to the verification SSD in the SSD. The data processing method of the embodiment of the present invention and the structure of the data control chip are described above. It can be seen that the data control chip of the embodiment of the present invention integrates the functions of PCI-E switching and RAID data processing, for example, as described above. The data control chip and the front-end interface chip and the SSD are all connected through a PCI-E interface, and the chip can also perform address conversion, data protection, and the like between the first address information and the second address information.
在将上述的 PCI-E交换以及 RAID数据处理的功能集成在数据控制芯片 之后, 这两部分功能在具体实施中是相互支持的; 比如, RAID数据处理中涉 及到地址转换或者数据镜像等处理后, 是需要根据转换后的地址结果或者镜 像后的数据进行数据传输的, RAID数据处理的功能模块会将其处理结果通知 PCI-E交换的功能模块, 由 PCI-E交换的功能模块根据上述转换后的地址结 果或者将镜像后的数据以 PCI-E方式进行传输。  After the above PCI-E switching and RAID data processing functions are integrated in the data control chip, the two functions are mutually supported in the specific implementation; for example, after RAID data processing involves address translation or data mirroring, etc. It is necessary to perform data transmission according to the translated address result or the mirrored data. The function module of the RAID data processing notifies the PCI-E exchange function module of the processing result, and the function module exchanged by the PCI-E is based on the above conversion. The subsequent address result or the mirrored data is transmitted in PCI-E mode.
并且, PCI-E交换以及 RAID数据处理的功能集成在数据控制芯片,具有 如下诸多的好处:  Moreover, the functions of PCI-E switching and RAID data processing are integrated in the data control chip, which has the following advantages:
例如, 由于 PCI-E交换的功能模块与 RAID数据处理的功能模块均位于 数据控制芯片的内部, 属于芯片内部的通信, 则两者之间就可以通过私有传 输协议进行通信交互, 通信效率较高; 并且, 相比两种功能模块分别位于两 个芯片的方式也不会占用 PCI-E交换的功能, 使得 PCI-E交换功能全部用于 前端接口芯片与 SSD之间的数据传输, 有助于提高数据传输效率 (两种功能 模块分别位于两个芯片的方式中, 所述两个芯片必须通过 PCI-E协议通信, 这将会消耗 PCI-E较大部分的交换功能, 使得前端接口芯片与 SSD之间的数 据传输效率下降) 。  For example, since the functional modules of the PCI-E exchange and the functional modules of the RAID data processing are both located inside the data control chip and belong to the internal communication of the chip, the two can communicate and interact through the private transmission protocol, and the communication efficiency is high. Moreover, the way in which the two functional modules are located on two chips does not occupy the PCI-E switching function, so that the PCI-E switching function is all used for data transmission between the front-end interface chip and the SSD, which helps Improve data transmission efficiency (the two functional modules are located in two chips, the two chips must communicate through the PCI-E protocol, which will consume the switching function of the larger part of PCI-E, so that the front-end interface chip and The data transmission efficiency between SSDs is degraded).
又例如, PCI-E交换以及 RAID数据处理的功能集成在数据控制芯片,就 可以共享一些功能或者存储单元等, 比如, 数据緩存单元、 数据计算功能、 调试功能等, 即该数据控制芯片中就可以设置一个数据緩存单元, 既可以用 于 PCI-E交换中的緩存, 也可以用于 RAID数据处理中的緩存。 这样该数据 控制芯片的成本降低、 硬件布局、 功耗、 散热等方面得到了节省下降。  For example, the functions of PCI-E switching and RAID data processing are integrated in the data control chip, and some functions or storage units can be shared, for example, a data buffer unit, a data calculation function, a debugging function, etc., that is, in the data control chip. A data cache unit can be set up, which can be used for both cache in PCI-E exchange and cache in RAID data processing. In this way, the data control chip is reduced in cost, hardware layout, power consumption, heat dissipation, and the like.
再例如, PCI-E交换以及 RAID数据处理的功能集成在数据控制芯片,还 提高了该数据控制芯片的功能扩展能力 , 使得该数据控制芯片在对于 PCI-E 接口的 SSD的应用方面可能遇到的问题提供了解决的机会; 比如, PCI-E接 口的 SSD在遇到暴力热插拔时, 如果数据控制芯片异常停止运行, 则可以通 过对 RAID数据处理的功能进行改进来解决这个问题; 但是假设该芯片只有 PCI-E交换功能, 则上述问题就无法解决, 严重影响存储设备的正常运行。 For example, the functions of PCI-E switching and RAID data processing are integrated in the data control chip, and the function expansion capability of the data control chip is also improved, so that the data control chip may encounter an application of the SSD for the PCI-E interface. The problem provides an opportunity to solve; for example, when the SSD of the PCI-E interface encounters a hot swap, if the data control chip stops abnormally, it can pass The function of RAID data processing has been improved to solve this problem; but if the chip has only PCI-E switching function, the above problem cannot be solved, which seriously affects the normal operation of the storage device.
实施例五  Embodiment 5
本实施例提供一种固态存储阵列控制器, 包括: 前端接口芯片、 固态硬 盘 SSD、以及本发明任意所述的数据控制芯片;所述数据控制芯片通过 PCI-E 接口分别与所述 SSD和前端接口芯片通信连接。  The embodiment provides a solid state storage array controller, including: a front end interface chip, a solid state hard disk SSD, and a data control chip according to any of the present invention; the data control chip respectively communicates with the SSD and the front end through a PCI-E interface Interface chip communication connection.
例如, 参见图 3 , 为一种可选的固态存储阵列控制器结构, 该固态存储 阵列控制器还包括: 镜像 SSD; 所述数据控制芯片通过 PCI-E接口与所述镜 像 SSD通信连接; 所述镜像 SSD, 用于从所述数据控制芯片接收镜像复制的 数据。 该固态存储阵列控制器还包括: 内存; 所述数据控制芯片通过 PCI-E 接口与所述内存连接; 所述内存, 用于从所述前端接口芯片接收第一数据, 以使得所述数据控制芯片从所述内存获取所述第一数据写入所述 SSD;或者, 从所述数据控制芯片接收从所述 SSD读取的第二数据, 以使得所述前端接口 芯片从所述内存获取所述第二数据。  For example, referring to FIG. 3, an optional solid-state storage array controller structure further includes: a mirrored SSD; the data control chip is communicably connected to the mirrored SSD through a PCI-E interface; A mirrored SSD for receiving mirrored copy data from the data control chip. The solid state storage array controller further includes: a memory; the data control chip is connected to the memory through a PCI-E interface; the memory is configured to receive first data from the front end interface chip, so that the data is controlled The chip acquires the first data from the memory and writes the SSD; or receives the second data read from the SSD from the data control chip, so that the front-end interface chip acquires the memory from the memory The second data is described.
需要说明的是, 图 3只是一种可选的固态存储阵列控制器结构, 具体实 施中可以变更, 例如, 图 3所示的数据控制芯片是直接与前端接口芯片连接 的, 还可以在数据控制芯片与前端接口芯片之间设置一 PCI-E交换芯片, 使 得前端接口芯片通过该 PCI-E交换芯片与数据控制芯片连接; 此外, 该数据 控制芯片也可以连接多个 PCI-E交换芯片等结构。  It should be noted that FIG. 3 is only an optional solid-state storage array controller structure, and may be changed in specific implementation. For example, the data control chip shown in FIG. 3 is directly connected to the front-end interface chip, and may also be in data control. A PCI-E switch chip is disposed between the chip and the front-end interface chip, so that the front-end interface chip is connected to the data control chip through the PCI-E switch chip; in addition, the data control chip can also be connected to multiple PCI-E switch chips and the like. .
本实施例的固态存储阵列控制器, 由于釆用了具有 PCI-E接口的数据控 制芯片, 提高了该阵列控制器的 IOPS能力, 适应了 SSD阵列的性能需求; 并且, 相对于传统的阵列控制器, 本实施例的阵列控制器将 PCI-E交换功能 与阵列处理功能例如数据保护处理集成在一个芯片即数据控制芯片上, 极大 的简化了阵列控制器的结构, 简化了阵列控制器的成本。  The solid state storage array controller of the embodiment improves the IOPS capability of the array controller by adapting the data control chip with the PCI-E interface, and adapts to the performance requirements of the SSD array; and, compared with the conventional array control The array controller of the embodiment integrates the PCI-E switching function and the array processing function, such as data protection processing, on one chip, that is, the data control chip, which greatly simplifies the structure of the array controller and simplifies the array controller. cost.
本领域普通技术人员可以理解: 实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成, 前述的程序可以存储于一计算机可读 取存储介质中, 该程序在执行时, 执行包括上述方法实施例的步骤; 而前述 的存储介质包括: ROM, RAM, 磁碟或者光盘等各种可以存储程序代码的介 质。  A person skilled in the art can understand that all or part of the steps of implementing the above method embodiments may be completed by using hardware related to program instructions, and the foregoing program may be stored in a computer readable storage medium, and the program is executed when executed. The method includes the steps of the foregoing method embodiments; and the foregoing storage medium includes: a medium that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.
最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非对 其限制; 尽管参照前述各实施例对本发明进行了详细的说明, 本领域的普通 技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换; 而这些修改或者替换, 并 不使相应技术方案的本质脱离本发明各实施例技术方案的范围。 Finally, it should be noted that the above embodiments are only used to illustrate the technical solution of the present invention, and not The invention is described in detail with reference to the foregoing embodiments, and those skilled in the art should understand that the technical solutions described in the foregoing embodiments may be modified, or some or all of the technical features may be modified. The equivalents are made without departing from the scope of the technical solutions of the embodiments of the present invention.

Claims

权 利 要 求 书 claims
1、 一种数据处理方法, 其特征在于, 包括: 1. A data processing method, characterized by including:
数据控制芯片从前端接口芯片获取第一地址信息, 所述第一地址信息用 于表示要写入第一数据的地址或者要读取第二数据的地址; The data control chip obtains the first address information from the front-end interface chip, and the first address information is used to indicate the address where the first data is to be written or the address where the second data is to be read;
所述数据控制芯片根据所述第一地址信息得到第二地址信息, 所述第二 地址信息用于表示所述第一地址信息在固态硬盘 SSD对应的位置, 所述数据 控制芯片通过 PCI Express (PCI-E)接口分别与所述 SSD和前端接口芯片通信 连接; The data control chip obtains second address information according to the first address information, and the second address information is used to indicate the corresponding position of the first address information in the solid state drive SSD. The data control chip passes PCI Express ( PCI-E) interface is respectively connected to the SSD and front-end interface chip;
所述数据控制芯片通过所述 PCI-E接口, 在所述前端接口芯片与所述第 二地址信息对应的 SSD之间传输所述第一数据或第二数据, 以使得将从所述 前端接口芯片接收的所述第一数据写入所述 SSD、或者从所述 SSD读取所述 第二数据传输至所述前端接口芯片。 The data control chip transmits the first data or the second data between the front-end interface chip and the SSD corresponding to the second address information through the PCI-E interface, so that the data will be transferred from the front-end interface to the SSD corresponding to the second address information. The first data received by the chip is written into the SSD, or the second data is read from the SSD and transmitted to the front-end interface chip.
2、 根据权利要求 1所述的数据处理方法, 其特征在于, 所述数据控制芯 片通过所述 PCI-E接口,在所述前端接口芯片与所述第二地址信息对应的 SSD 之间传输所述第一数据或所述第二数据, 包括: 2. The data processing method according to claim 1, characterized in that the data control chip transmits the data between the front-end interface chip and the SSD corresponding to the second address information through the PCI-E interface. The first data or the second data include:
所述数据控制芯片将所述第二地址信息发送至所述前端接口芯片, 以使 得所述前端接口芯片通过所述数据控制芯片的 PCI-E接口, 以直接内存访问 DMA方式对所述第二地址信息对应的 SSD写入所述第一数据或读取所述第 二数据。 The data control chip sends the second address information to the front-end interface chip, so that the front-end interface chip uses the direct memory access DMA mode to access the second address through the PCI-E interface of the data control chip. The SSD corresponding to the address information writes the first data or reads the second data.
3、 根据权利要求 1所述的数据处理方法, 其特征在于, 所述数据控制芯 片通过所述 PCI-E接口,在所述前端接口芯片与所述第二地址信息对应的 SSD 之间传输所述第一数据或所述第二数据, 包括: 3. The data processing method according to claim 1, wherein the data control chip transmits the data between the front-end interface chip and the SSD corresponding to the second address information through the PCI-E interface. The first data or the second data include:
所述数据控制芯片从与所述数据控制芯片相连接的内存中获取所述第 ― 数据, 并根据所述第二地址信息将所述第一数据写入对应的所述 SSD, 所述 第一数据是所述前端接口芯片通过所述数据控制芯片传输至所述内存; The data control chip obtains the first data from the memory connected to the data control chip, and writes the first data to the corresponding SSD according to the second address information. The first Data is transmitted from the front-end interface chip to the memory through the data control chip;
或者, 所述数据控制芯片根据所述第二地址信息从对应的所述 SSD读取 所述第二数据,并将所述第二数据传输至与所述数据控制芯片相连接的内存, 以使得所述前端接口芯片通过所述数据控制芯片从所述内存读取所述第二数 据。 Alternatively, the data control chip reads the second data from the corresponding SSD according to the second address information, and transmits the second data to the memory connected to the data control chip, so that The front-end interface chip reads the second data from the memory through the data control chip.
4、 根据权利要求 1〜3任一所述的方法, 其特征在于, 所述在所述前端接 口芯片与所述第二地址信息对应的 SSD之间传输所述第一数据或第二数据, 包括: 4. The method according to any one of claims 1 to 3, characterized in that: the front end is connected Transmitting the first data or the second data between the port chip and the SSD corresponding to the second address information includes:
在将写入所述 SSD的所述第一数据传输经过所述数据控制芯片时, 所述 数据控制芯片将所述数据进行镜像复制, 并将镜像复制的数据发送至与所述 数据控制芯片相连接的镜像 SSD。 When the first data written to the SSD is transmitted through the data control chip, the data control chip mirrors the data and sends the mirrored data to a computer connected to the data control chip. Connected mirror SSD.
5、 根据权利要求 1〜3任一所述的方法, 其特征在于, 所述在所述前端接 口芯片与所述第二地址信息对应的 SSD之间传输所述第一数据或所述第二数 据, 包括: 5. The method according to any one of claims 1 to 3, wherein the first data or the second data is transmitted between the front-end interface chip and the SSD corresponding to the second address information. Data, including:
在将写入所述 SSD的所述第一数据传输经过所述数据控制芯片时, 所述 数据控制芯片对所述数据进行校验信息计算, 并将所述校验信息写入所述 SSD中的校验 SSD。 When the first data written into the SSD is transmitted through the data control chip, the data control chip calculates verification information on the data and writes the verification information into the SSD. Checksum SSD.
6、 一种数据控制芯片, 其特征在于, 包括: 6. A data control chip, characterized by including:
信息接收单元, 用于从前端接口芯片获取第一地址信息, 所述第一地址 信息用于表示要写入第一数据的地址或者要读取第二数据的地址; An information receiving unit, configured to obtain first address information from the front-end interface chip, where the first address information is used to represent the address where the first data is to be written or the address where the second data is to be read;
信息处理单元, 用于根据所述第一地址信息得到第二地址信息, 所述第 二地址信息用于表示所述第一地址信息在固态硬盘 SSD对应的位置, 所述数 据控制芯片通过 PCI Express (PCI-E)接口分别与所述 SSD和前端接口芯片通 信连接; An information processing unit, configured to obtain second address information based on the first address information. The second address information is used to represent the position corresponding to the first address information in the solid state drive SSD. The data control chip passes PCI Express (PCI-E) interface is communicated with the SSD and front-end interface chip respectively;
传输控制单元, 用于通过所述 PCI-E接口, 在所述前端接口芯片与所述 第二地址信息对应的 SSD之间传输所述第一数据或第二数据, 以使得将从所 述前端接口芯片接收的所述第一数据写入所述 SSD、或者从所述 SSD读取所 述第二数据传输至所述前端接口芯片。 A transmission control unit configured to transmit the first data or the second data between the front-end interface chip and the SSD corresponding to the second address information through the PCI-E interface, so that the data will be transmitted from the front-end interface to the SSD corresponding to the second address information. The first data received by the interface chip is written into the SSD, or the second data is read from the SSD and transmitted to the front-end interface chip.
7、 根据权利要求 6所述的数据控制芯片, 其特征在于, 7. The data control chip according to claim 6, characterized in that,
所述传输控制单元, 具体用于将所述第二地址信息发送至所述前端接口 芯片, 以使得所述前端接口芯片通过所述数据控制芯片的 PCI-E接口, 以直 接内存访问 DMA方式对所述第二地址信息对应的 SSD写入所述第一数据或 读取所述第二数据。 The transmission control unit is specifically configured to send the second address information to the front-end interface chip, so that the front-end interface chip uses a direct memory access DMA mode through the PCI-E interface of the data control chip. The SSD corresponding to the second address information writes the first data or reads the second data.
8、 根据权利要求 6所述的数据控制芯片, 其特征在于, 8. The data control chip according to claim 6, characterized in that,
所述传输控制单元, 具体用于从与所述数据控制芯片相连接的内存中获 取所述第一数据, 并根据所述第二地址信息将所述第一数据写入对应的所述 SSD, 所述第一数据是所述前端接口芯片通过所述数据控制芯片传输至所述 内存; The transmission control unit is specifically configured to obtain the first data from the memory connected to the data control chip, and write the first data into the corresponding address according to the second address information. SSD, the first data is transmitted by the front-end interface chip to the memory through the data control chip;
或者, 根据所述第二地址信息从对应的所述 SSD读取所述第二数据, 并 将所述第二数据传输至与所述数据控制芯片相连接的内存, 以使得所述前端 接口芯片通过所述数据控制芯片从所述内存读取所述第二数据。 Or, read the second data from the corresponding SSD according to the second address information, and transfer the second data to the memory connected to the data control chip, so that the front-end interface chip The second data is read from the memory through the data control chip.
9、 根据权利要求 6〜8任一所述的数据控制芯片, 其特征在于, 还包括: 镜像保护单元, 用于在将写入所述 SSD的所述第一数据传输经过所述数 据控制芯片时, 所述数据控制芯片将所述数据进行镜像复制, 并将镜像复制 的数据发送至与所述数据控制芯片相连接的镜像 SSD。 9. The data control chip according to any one of claims 6 to 8, further comprising: a mirror protection unit, configured to transmit the first data written to the SSD through the data control chip At this time, the data control chip mirrors the data and sends the mirrored data to the mirror SSD connected to the data control chip.
10、 根据权利要求 6〜8任一所述的数据控制芯片, 其特征在于, 还包括: 校验保护单元, 用于在将写入所述 SSD的所述第一数据传输经过所述数 据控制芯片时, 所述数据控制芯片对所述数据进行校验信息计算, 并将所述 校验信息写入所述 SSD中的校验 SSD。 10. The data control chip according to any one of claims 6 to 8, further comprising: a verification protection unit, configured to transmit the first data written to the SSD through the data control When the chip is connected, the data control chip calculates verification information on the data, and writes the verification information into the verification SSD in the SSD.
11、 一种固态存储阵列控制器, 其特征在于, 包括: 前端接口芯片、 固 态硬盘 SSD、 以及权利要求 6〜10任一所述的数据控制芯片; 11. A solid-state storage array controller, characterized in that it includes: a front-end interface chip, a solid-state drive SSD, and the data control chip described in any one of claims 6 to 10;
所述数据控制芯片通过 PCI-E接口分别与所述 SSD和前端接口芯片通信 连接。 The data control chip communicates with the SSD and front-end interface chip respectively through the PCI-E interface.
12、根据权利要求 11所述的固态存储阵列控制器,其特征在于,还包括: 镜像 SSD; 所述数据控制芯片通过 PCI-E接口与所述镜像 SSD通信连接; 所述镜像 SSD, 用于从所述数据控制芯片接收镜像复制的数据。 12. The solid-state storage array controller according to claim 11, further comprising: a mirror SSD; the data control chip is communicatively connected to the mirror SSD through a PCI-E interface; the mirror SSD is used for Receive mirrored data from the data control chip.
13、根据权利要求 11所述的固态存储阵列控制器,其特征在于,还包括: 内存; 所述数据控制芯片通过 PCI-E接口与所述内存连接; 13. The solid-state storage array controller according to claim 11, further comprising: a memory; the data control chip is connected to the memory through a PCI-E interface;
所述内存, 用于从所述前端接口芯片接收第一数据, 以使得所述数据控 制芯片从所述内存获取所述第一数据写入所述 SSD; 或者, 从所述数据控制 芯片接收从所述 SSD读取的第二数据, 以使得所述前端接口芯片从所述内存 获取所述第二数据。 The memory is configured to receive the first data from the front-end interface chip, so that the data control chip obtains the first data from the memory and writes it to the SSD; or, receives the first data from the data control chip. The second data read by the SSD allows the front-end interface chip to obtain the second data from the memory.
PCT/CN2012/086928 2012-12-19 2012-12-19 Data processing method and device WO2014094250A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2012/086928 WO2014094250A1 (en) 2012-12-19 2012-12-19 Data processing method and device
CN2012800032891A CN103403667A (en) 2012-12-19 2012-12-19 Data processing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/086928 WO2014094250A1 (en) 2012-12-19 2012-12-19 Data processing method and device

Publications (1)

Publication Number Publication Date
WO2014094250A1 true WO2014094250A1 (en) 2014-06-26

Family

ID=49565843

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/086928 WO2014094250A1 (en) 2012-12-19 2012-12-19 Data processing method and device

Country Status (2)

Country Link
CN (1) CN103403667A (en)
WO (1) WO2014094250A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326138B (en) * 2015-07-03 2019-11-05 比亚迪股份有限公司 The access control method of flash memory and flash memory internal data
CN105975358B (en) * 2016-05-03 2019-02-26 深圳市杉岩数据技术有限公司 A kind of fault-tolerance approach and system based on scsi device
CN108121600B (en) * 2016-11-30 2022-11-29 中兴通讯股份有限公司 Disk array controller, input/output (IO) data processing method and device
CN108363670B (en) * 2017-01-26 2020-07-14 华为技术有限公司 Data transmission method, device, equipment and system
CN109032513B (en) * 2018-07-16 2020-08-25 山东大学 RAID (redundant array of independent disks) architecture based on SSD (solid State disk) and HDD (hard disk drive) and backup and reconstruction methods thereof
CN110209343B (en) * 2018-07-23 2021-12-14 腾讯科技(深圳)有限公司 Data storage method, device, server and storage medium
CN109376104B (en) * 2018-09-28 2021-12-07 创新先进技术有限公司 Chip and data processing method and device based on chip
CN110928490B (en) * 2019-10-28 2021-08-17 中国科学院上海微系统与信息技术研究所 Data storage method and device
CN111857580B (en) * 2020-07-06 2022-07-26 苏州浪潮智能科技有限公司 Same writing method and device of distributed storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101539894A (en) * 2009-05-04 2009-09-23 成都市华为赛门铁克科技有限公司 Method and device for accessing external equipment of computer into computer system
CN102096560A (en) * 2011-01-27 2011-06-15 浪潮电子信息产业股份有限公司 Multi-path solid state disk acceleration method based on PCI-E interface
CN102171649A (en) * 2008-12-22 2011-08-31 英特尔公司 Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
CN102360342A (en) * 2011-10-11 2012-02-22 中国人民解放军国防科学技术大学 Solid state disk for rapidly storing and displaying massive image data

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591746B (en) * 2011-12-29 2014-01-08 华为数字技术(成都)有限公司 Data reconstruction method and storage equipment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102171649A (en) * 2008-12-22 2011-08-31 英特尔公司 Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
CN101539894A (en) * 2009-05-04 2009-09-23 成都市华为赛门铁克科技有限公司 Method and device for accessing external equipment of computer into computer system
CN102096560A (en) * 2011-01-27 2011-06-15 浪潮电子信息产业股份有限公司 Multi-path solid state disk acceleration method based on PCI-E interface
CN102360342A (en) * 2011-10-11 2012-02-22 中国人民解放军国防科学技术大学 Solid state disk for rapidly storing and displaying massive image data

Also Published As

Publication number Publication date
CN103403667A (en) 2013-11-20

Similar Documents

Publication Publication Date Title
WO2014094250A1 (en) Data processing method and device
KR101455016B1 (en) Method and apparatus to provide a high availability solid state drive
US7761657B2 (en) Storage control system, control method for storage control system, port selector, and controller
JP6228347B2 (en) Storage apparatus and storage device
US7975168B2 (en) Storage system executing parallel correction write
CN102209103B (en) Multicasting write requests to multiple storage controllers
JP5511960B2 (en) Information processing apparatus and data transfer method
JP5302892B2 (en) System and method for optimizing write processing in a storage system
US9495263B2 (en) Redundant SAS storage virtualization subsystem and system using the same, and method therefor
US7730257B2 (en) Method and computer program product to increase I/O write performance in a redundant array
US20060277445A1 (en) Disk array apparatus and method for controlling the same
WO2013143273A1 (en) Method and device for reducing read delay
US8595397B2 (en) Storage array assist architecture
TWI791880B (en) Computuer system
JP2010287211A (en) Simultaneous intermediate proxy direct memory access
WO2014190501A1 (en) Data recovery method, storage device, and storage system
US20110282963A1 (en) Storage device and method of controlling storage device
CN110609659A (en) NVMeoF RAID implementation method for executing read command
JP2009053946A (en) Block device controller with duplex controller configuration
JP2012507784A (en) Independent disk redundant array (RAID) write cache subassembly
US20110154165A1 (en) Storage apparatus and data transfer method
US20150058658A1 (en) Storage apparatus and method for controlling storage apparatus
KR101824671B1 (en) Apparatus and method for routing information in a non-volatile memory-based storage device
JP4368587B2 (en) Bus bridge circuit, bus connection system, and data error notification method for bus bridge circuit
JP6825263B2 (en) Storage controller and storage system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12890380

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12890380

Country of ref document: EP

Kind code of ref document: A1