Circuit and method for checking and recovering a disk array
Granted 9 Jun 2009 · 1 office action
Assignee: VIA Technologies Inc.
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: Hung-Pin Chen · Examiner: Esaw T Abraham · AU 2112 · TC 2100
Life of the application
8 dated eventsDescription
6 parts›FIELD OF THE INVENTION
The present invention relates generally to a circuit and a method for checking and recovering the data of a disk array, and more particularly to the circuit and the method for checking and recovering a disk array that will not affect the performance of the central processing unit while producing check data or recovery data, and the circuit is so simple that the installation cost is effectively reduced.
›BACKGROUND OF THE INVENTION
With the advent of the information era, the data stored in a computer system increases day by day. The hard disk drives used for storing data accordingly continue to expand in storage capacity, and have progressed from single disk to multiple disks. Nevertheless, the price of hard disk drives is proportional to its storage capacity. That is, the more the storage capacity is, the more expensive it costs with less fault-tolerating. Therefore, a virtual large-scale disk drive comprising of a plurality of independent disk drives such as a redundant array of independent disks (RAID), called a disk array, is developed for the purpose. By using the disk array, the performance of data storage is enhanced, and the disk arrays are provided with debugging capabilities. When a disk drive is damaged, it is only necessary to replace the drive with one that functions normally, and then the data stored in the damaged disk drive can be recovered later.
A fault-tolerating disk array is able to perform the operations to produce check data while storing data to disk drives, and then stores the produced check data to the disk drives. When a disk drive is damaged, by performing operations on the data stored in other disk drives and on the check data, the original data in the damaged disk drive can be recovered, and can thus be stored back to the newly replaced disk drive. Most of the fault-tolerating disk array technologies nowadays use a central processing unit to perform operations on data to produce check data. In this way, the performance of the central processing unit and the computer system will be affected. In addition, because the data has to be read from memories or disk drives when the central processing unit produces check data or recovery data, and then the check data or the recovery data have to be stored back to the disk drives, which will consume lots of time.
Due to the problems described above, nowadays a separate input/output processor for disk arrays is developed to perform the operations for producing the check data as well as the recovery data. However, the separate input/output processor is expensive, and memory support is necessary when the processor is employed. Therefore, the effects for employing the independent processor are limited for those applications whose hardware cost has to be reduced.
By summarizing foregoing problems, the present invention proposes a circuit and a method for checking and recovering a disk array that will not affect the performance of the central processing unit while producing check data or recovery data, and the circuit is so simple that the hardware cost is effectively reduced to solve the foregoing problems.
›SUMMARY OF THE INVENTION
The main object of the present invention is to provide a circuit and a method for checking and recovering a disk array that will not affect the performance of the central processing unit while producing check data and recovery data.
Another object of the present invention is to provide a circuit and a method for checking and recovering a disk array, on which the circuit is simple for checking and recovering so that the hardware cost of installation in computer systems can be reduced and the method is simple so that the performance of checking and recovering data can be enhanced.
The circuit for checking and recovering a disk array according to the present invention comprises a plurality of buffers, a plurality of input selectors, a plurality of operation units, and an output selector. Each of the plurality of buffers couples to one of the disk drives respectively. The method for checking and recovering a disk array according to the present invention is that the plurality of buffers receive and temporarily store data, and then each of the plurality of input selectors coupled with the plurality of buffers selects the data in one of the buffers to be sent to the operation unit that is coupled to the input selector respectively. The data sent by the plurality of input selectors coupled to the plurality of operation units are received by the plurality of operation units, which are connected in series. The data are further processed to produce the check data, and then sent to the output selector in order to select one of the buffers to which the check data is to be sent. Then the check data is sent to the disk drive coupled with the selected buffer. Moreover, when the data in a disk drive is to be recovered, the buffers coupled with other disk drives receive, store the data and the check data stored in the disk drives, on which the data or check data are then sent to the coupled operation units by using the input selectors in order to perform operations on the data and the check data to produce recovery data. The produced recovery data is sent to the output selector in order to select the buffer coupled with the disk drive to be recovered, and then the recovery data is sent to the disk drive to be recovered.
The present invention further provides a circuit and a method for checking and recovering, which is different from the foregoing circuit and method in that the plurality of input selectors are not included. The buffers are directly coupled to the operation units respectively. The method for checking and recovering is to receive and store data by a plurality of buffers for the operation units to perform operations and to produce the check data. The check data is then sent to the output selector to select the check data to be sent to a buffer, so that the check data can be sent to the disk drive coupled with the selected buffer. When recovering the data in a disk drive, the buffers coupled with other disk drives receive and store the data or the check data stored in the disk drives in order to let the operation units perform the operations to produce the recovery data. The produced recovery data is sent to the output selector in order to select the buffer coupled with the disk drive to be recovered, and then the recovery data is sent to the disk drive to be recovered.
In order to make the structure, features, and the effectiveness achieved of the present invention further understood and recognized, the detailed description of the present invention is provided as follows along with preferred embodiments and accompanying figures.
›BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows the block diagram of a circuit in a preferred embodiment according to the present invention;
FIG. 2A shows the flowchart of producing check data in a preferred embodiment according to the present invention;
FIG. 2B shows the flowchart of producing recovery data in a preferred embodiment according to the present invention;
FIG. 3 shows the block diagram of the circuit in another preferred embodiment according to the present invention;
FIG. 4A shows the flowchart of producing check data in another preferred embodiment according to the present invention; and
FIG. 4B shows the flowchart of producing recovery data in another preferred embodiment according to the present invention.
›DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS · 1 of 2
Please first refer to FIG. 1 , which shows a block diagram of the circuit in a preferred embodiment according to the present invention. As shown in the figure, the circuit for checking and recovering data comprises a plurality of buffers 10 , a plurality of input selectors 20 , a plurality of operation units 30 , and an output selector 40 . The buffers 10 can be first-input-first-output (FIFO) buffers used to receive and store data. Each of the buffers 10 is coupled to a bus 50 , and each of the buffers 10 is coupled respectively to a disk drive 60 of a disk array, and is used to select sending the stored data in any of the buffers 10 . The input selector 20 can be a multiplexer.
Each of the operation units 30 is connected in series each other and is coupled to the input selector 20 . The operation units 30 are logic operation units of Exclusive-OR gates used to perform operations on the data selected by the input selectors 20 for sending and producing check data or recovery data. The produced check data or recovery data will be sent to the output selector 40 used to select a buffer 10 to which the data is sent; the output selector 40 can be a demultiplexer and the check data is parity check data. Thereby, the check data or the recovery data can be sent to a designated disk drive 60 . The circuit for checking and recovering data can be integrated directly into a Southbridge chip of a computer system, and the buffers 10 can be replaced by the FIFO buffers included in the Southbridge chip. Therefore, the installation cost can be lowered, and the performance of the central processing unit of the computer system will not be affected while producing the check data or the recovery data. Meanwhile, because the circuit according to the present invention can be integrated into the Southbridge chip, the read time and the write time of data access can be shortened to improve operation performance.
Please refer to FIG. 2A , which shows the flowchart of producing check data in the preferred embodiment according to the present invention. When data is to be stored to the disk drives 60 of the disk array, the data partitioned into multiple chunks of data and sent respectively to different disk drives 60 will be sent to the circuit for checking and recovering according to the present invention so that the check data is produced and stored in the disk drives 60 of the disk array. If the disk array is RAID Level 3 or RAID Level 4, the check data will be stored in a specific disk drive while the partitioned multiple chunks of data are stored in the remaining disk drives. On the other hand, if the disk array is RAID Level 5, the check data and the partitioned multiple chunks of data will be stored distributively in different disk drives. That is, the check data is not stored in a specific disk drive.
First, as shown in the step S 1 , the data is partitioned into multiple chunks of data and is sent to and stored in each of the buffers 10 respectively via the bus 50 . Next, each of the input selectors 20 , as shown in the step S 2 , selects the data stored in one of the buffers 10 to send to the coupled operation unit 30 , so that the step S 3 can be executed to perform operations on the data to produce the check data corresponding to the data, and to send the check data to the output selector 40 . Then, the output selector 40 executes the step S 4 to select sending the check data to one of the buffers 10 , so that the check data can be stored in a buffer 10 . The buffer 10 and the disk drive 60 used for storing the check data are connected together. Afterwards, the step S 5 is executed so that the check data is sent to and stored in the coupled disk drive 60 .
The foregoing action of sending multiple chunks of data respectively to each of the buffers 10 via the bus 50 sends the multiple chunks of data to the buffer 10 coupled with the desired disk drive 60 respectively for storing the data in chunks. That is, the buffer 10 that receives no chunk of data is coupled to the disk drive 60 used for storing the check data of the data. Thereby the output selector 40 will send the check data produced by the operation units 30 to the buffer 10 that receives no chunk of data, so that the check data can be sent to the disk drive 60 used for storing the check data.
Please continue to refer to FIG. 2B , which illustrates the scenario of performing recovery by the circuit. When data in one of the disk drives 60 of the disk array is failed to be read, the disk drive is replaced by a normal disk drive 60 . First, as shown in the step S 11 , the buffers 10 coupled to the undamaged disk drives 60 receive and store the data, or the check data in the undamaged disk drives 60 . Next, each of the input selectors 20 executes the step S 12 to select individually to send the data or the check data stored in one of the buffers 10 to the coupled operation unit 30 , so that the step S 13 can be executed by the operation units 30 to perform operations on the data and the check data to produce the recovery data, and to send the recovery data to the output selector 40 . Next, the output selector 40 executes the step S 14 to select sending the recovery data to the buffer 10 coupled to the replaced disk drive in which the data to be recovered, so that the step S 15 can be executed to store the recovery data in the replaced disk drive. The input selectors 20 and the output selector 40 mentioned above can be configured and controlled by software so that the data can be selected to send to the operation unit 30 , and the check data or the recovery data produced by the operation units 30 can be selected to send to a buffer 10 and to store in the disk drive 60 coupled to the buffer 10 .
Please refer to FIG. 3 , which shows a block diagram of another preferred embodiment according to the present invention. As shown in the figure, the present preferred embodiment is different from the foregoing preferred embodiment in that the input selectors 20 are not included in the preferred embodiment, and that each of the buffers 10 is coupled directly to the operation unit 30 . The rest parts of the preferred embodiment are the same as those in the foregoing one. Thereinafter, the detailed actions of producing the check data according to the preferred embodiment in FIG. 3 are explained accompanying FIG. 4A . First, when chunks of data are stored to the disk drives 60 in a disk array; similarly, they will be sent respectively to the buffers via the bus 50 . That is, the buffers 10 , as shown in the step S 31 , receive and store the data. Next, the step S 32 is executed by the buffers 10 to send the data stored to the coupled operation units 30 , so that the step S 33 can be executed by the operation units 30 to perform operations on the data to produce the check data, and to send the check data to the output selector 40 . Then, the output selector 40 executes the step S 34 to select sending the check data to one of the buffers 10 , which is the buffer 10 coupled to the disk drive 60 used for storing the check data. Subsequently, the step S 35 is executed so that the check data is sent to the disk drive 60 coupled to the selected buffer 10 , which disk drive 60 is also the one used for storing the check data.
›DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS · 2 of 2
Please continue to refer to FIG. 4B , which shows a flowchart of producing recovery data in the preferred embodiment according to FIG. 3 . When one of the disk drives 60 in the preferred embodiment according to FIG. 3 is damaged, it will be replaced by a normal disk drive 60 in order to recover the data in the damaged disk drive 60 . First, as shown in the step S 41 , the data or the check data stored in the undamaged disk drives 60 is received and stored respectively via the buffers 10 coupled to the undamaged disk drives 60 . Next, as shown in the step S 42 , the data or the check data stored in the buffers 10 is respectively sent to the operation units 30 so that the step S 43 can be executed by the operation units 30 to perform operations on the data and the check data to produce the recovery data, and send the recovery data to the output selector 40 . Then, the step S 44 is executed to select sending the recovery data to the buffer 10 coupled to the disk drive 60 to be recovered. Finally, the step S 45 is executed to send the recovery data to the disk drive 60 to be recovered. The present preferred embodiment, compared to the previous preferred embodiment, costs less and occupies less area for the circuit of checking and recovering according to the present invention, because the input selectors 20 are not necessary to be included in the present preferred embodiment.
To sum it up, the circuit and the method for checking and recovering a disk array according to the present invention is a simple. The circuit and the method can perform operations on the data to produce the check data. When one of the disk drives is damaged, the circuit and the method can perform operations on the data and the check data stored in undamaged disk drives to produce the check data. It is not necessary to perform operations by the central processing unit or to separately install expensive separate input/output processors in order to produce the check data and the recovery data mentioned above. Thus, the performance of the central processing unit will not be affected; moreover, the hardware costs are significantly reduced. In addition, because the present invention can be integrated directly into a Southbridge chip, the read time and the write time of data can be shortened to improve operation performance.
Accordingly, the present invention conforms to the legal requirements owing to its novelty, unobviousness, and utility. However, the foregoing description is only a preferred embodiment of the present invention, which is not used to limit the scope and range of the present invention. Those equivalent changes or modifications made on the shape, structure, feature, or spirit described in the claims of the present invention should also be included in the claims of the present invention.
Claims as granted
21 claimsLog in to read the claims of this application.
Log in to unlockClassifications
3 codes- H03M13/00
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock