DATA STORAGE APPARATUS

Abstract: The invention provides for a data storage apparatus including a first bus (104), a second bus (106), and a storage module (102) having a first and second output with the first output being connected to the first bus (104) and a second output being connected to the second bus (106). A first buffer storage (108) is connected to the first bus (104), and a second buffer storage (110) is connected to the second bus (106). The second buffer storage (110) includes an error correction module (110c), and first and second network adapters (112, 114) are connected to the first (104) and second (106) buses, respectively. The first network adapter (112) also includes a connection to the first buffer (108). A processor (120) in the apparatus includes a first processor means for transferring the data using a first path through the first output in the storage module (102) to the first buffer storage (108) and from the first buffer storage (108) to the first network adapter (112). A second processor means (120) is provided for transferring data using a second path through the second output to the second buffer storage (110) through the error correction module (110c) and from the second buffer storage (110) to the second network adapter (114), wherein the second processor means is responsive to an error in the storage module (102).

Description: DATA STORAGE APPARATUS The present invention relates to a data storage apparatus and in particular, but not exclusively, to an apparatus for increasing the performance of storage devices. A mass storage system is typically in the form of disk or tape storage means for storing large amounts of data in comparison with computer memory capacity. Mass storage systems provide long-term memory to a computer. Various types of mass storage system mediums include hard disk drives and, to a lessor extent, floppy disk drives. Other technologies are becoming prominent in providing mass storage. For example, laser-based optical systems, such as CD ROM. are becoming more common. Mass storage systems can be provided on-line, instantly accessible by a data processing system or off-line, requiring some extra intervention to obtain access, such as placing a cartridge into a drive. Juke boxes for CD-ROM cartridges provide near-line storage. Mass storage systems include a single storage device or may contain multiple storage devices. With improvements in compression technologies and mass storage systems, applications such as video-on-demand (VOD), video editing, interactive games, home shopping, and other multimedia applications have been developed. Video-on-demand services may include, for example, movies, sporting events, textual information, educational programs, and arts programs. A "multimedia application" is an application that uses different forms of communication in one application. For example, information can be displayed on a data processing system using voice, text, and video simultaneously. A multimedia data processing system allows text, graphics, and audio to be displayed simultaneously. These types of multimedia applications are referred to collectively as "video", and it should be understood that a video generally includes both video and audio portions, although, in some instances, a video may only include an image portion as in textual information, or only an audio ponion, as for example music. Two major concerns with storing video in a mass storage system is how to maximize the number of video viewers (the number of video data streams) from the mass storage system and how to guarantee that these users can continue to be supported when a storage device in the mass storage system fails. A mass storage system for storing video is called a "video storage unit". The bandwidth provided by a video storage unit determines the number of video data streams that the mass storage system can sustain. Typically, a requested compressed video data stream can require a bandwidth of three megabits per second (Mb/s). If a video storage unit has a 30 megabyte resource, the data processing system to which the video storage unit is connected to is typically capable of an 80 video stream output. The components in a video storage unit that effect bandwidth are the storage device, high speed video buffers for holding video data about to be transmitted through a network adapter, and the connection bus or buses for those components. Presently, increasing the bandwidth on a bus requires increasing the bit width ofthe bus. Therefore, it would be advantageous to have an improved method and apparatus for increasing the bandwidth on a video storage unit or other mass storage system without increasing the width ofthe buses themselves. According to one aspect of the present invention there is provided a storage apparatus comprising a first bus, a second bus. storage means for storing data and having a first output and a second output, the first output being connected to the first bus and the second output being connected to the second bus. first buffer storage means connected to the first bus. second buffer storage means connected to the second bus and including error correction means, first network adapter means connected to an output of the first buffer means, second network adapter means connected to the second bus, and processor means including a first processor means for transferring the data using a first path from the first output to the first buffer storage means and from the first buffer storage means to the first network adapter means and second processor means for transferring the data using a second path from the second output to the second buffer storage means and from the second buffer storage means to the second network adapter means, wherein the second processor means is responsive to an error in the storage module and wherein errors in data are detected and corrected by the error correction means. According to another aspect of the present invention there is provided a storage apparatus comprising a first bus, a second bus, storage means containing a plurality of storage devices and having a first output and a second output, first buffer storage means connected to the first bus, second buffer storage means connected to the second bus and including error correction means, first network adapter means connected to the output of the first buffer means, second network adapter means connected to the second bus, and wherein apparatus is arranged to have a first mode of operation in which the data is transferred from the first output to the first bus, from the first bus to the first buffer storage means, and from the first buffer storage means to the first network adapter means, and a second mode of operation, responsive to a failure of one ofthe plurality of storage devices in the storage means, in which data is transferred from the second output to the second buffer storage means with parity bits, wherein the error correction means verifies and corrects errors in the data prior to the data being transferred to the second network adapter means. According to yet another aspect ofthe present invention there is provided a data storage system comprising a first bus, a second bus, storage means for storing data and connected to the first bus and the second bus, and buffer storage means connected to the first bus and the second bus and including an error conection module, means for transferring data to the buffer storage means using the first bus until an enor in data occurs in retrieving data from the storage means, and means, responsive to an error in retrieving data from the storage means, for transferring data to the buffer means using the second bus and for checking errors in the data and conecting detected errors in the data using the enor conection means. The invention is particularly advantageous in improving the performance of data storage devices by increasing the bandwidth of data transferred thereto and therefrom. The invention is described further hereinafter, by way of example only, with reference to the accompanying drawings in which: Fig. 1 illustrates a distributed data processing system embodying the present invention; Fig. 2 is a block diagram of a data processing system embodying the present invention; Fig. 3 is a block diagram of a video storage unit embodying the present invention; Fig. 4 depicts a flowchart of processes for switching from a clear channel bus to a degraded mode bus in the event of an error in a storage device; and Fig. 5 is a flowchart of a process for increasing the number of data streams in a video storage unit. With reference to Fig. 1 , a distributed data processing system 10 for providing video is depicted in accordance with a preferred embodiment of the present invention. Distributed data processing system 10 includes one or more data processing systems 12, user systems 14 distributed over a large geographical area, and a communications network 16. Generally, videos are transferred from data processing system 12 to user systems 14 over the communications network 16. In addition, videos may be transferred between the data processing systems 12. The physical medium employed in communications network 16 for communicating between data processing system 12 and user system 14 can be, for example, a twisted pair of wires, a coaxial cable, a fibre optic cable, a microwave link, or a satellite link. The continuous physical path used for communicating is called a circuit. The circuit includes a relatively small bandwidth "bi-directional" channel for communicating control signals and a relatively large bandwidth "downstream" channel for communicating video data. This circuit may include additional channels, for example, a medium bandwidth channel allocated for two-way communications such as telephone service may be employed. In the depicted example, distributed data processing system 10 is a broadband communications system including Synchronized Optical Network (SONET), Asynchronous Transfer Mode (ATM), and Intelligent Networks (IN). Services available across distributed data processing system 10 may include video voice mail (a voice activated remote video answering machine); interactive video phone (a voice activated video based telephone conversation); data and video transfer (a voice activated accessing of information from remote text and video libraries across wide geographic areas); and VOD. In addition to these, numerous other multimedia applications may be provided by broadband communications in distributed data processing system 10. To support audio and video, video servers in distributed data processing system 10 must support storage of vast amounts of data. For example, 10 minutes of uncompressed full motion video typically consumes 22 gigabytes of memory. Presently available compression standards, such as Joint Photographic Experts Group (JPEG) and Motion Picture Experts Group (MPEG) are employed to compress data. More information on communication networks involving broadband communications networks and architecture along with data transfer standards can be found in Kumar, Broadband Communications: A Professional's Guide To A TM, Frame Relay, SMDS, SONET, and BISDN, McGraw-Hill, Inc. (1995). User systems 14 comprise an interface/controller box connected to the network and a viewing device such as a monitor or a television in the depicted example. Alternatively, the configuration of user systems 14 may be work stations. With reference now to Fig. 2, a diagram of a data processing system is illustrated according to the present invention. Data processing system 12 includes a video server 50 that contains a system bus 52, interconnecting a number of components. In particular, processor 54. memory 56. and storage device 58 are in communication with each other via system bus 52 inside video server 50. Programs supporting system and network management are executed by processor 54. While any appropriate processor can be used for processor 54, the Pentium microprocessor, which is sold by Intel Corporation and the PowerPC 620, available from International Business Machines Coφoration and Motorola, Inc. are examples of suitable processors. "Pentium" is a trademark ofthe Intel Coφoration and "PowerPC" is a trademark of International Business Machines Coφorations. Additionally, business support databases may be found on storage device 58. These databases are employed to track incoming requests for videos and statistical data, such as peak request times for videos, frequency of requests for videos, and identification of users requesting videos. Video server 50 is connected to a communications bus 62. like ethernet. Specifically, video server 50 may be implemented using any suitable computer, such as the IBM PS/2 or an IBM RISC SYSTEM/6000 computer, both products of Intemational Business Machines Coφoration, located in Armonk, New York. "RISC SYSTEM/6000 is a trademark of Intemational Business Machines Coφoration. Additionally, video storage units 60, according to the present invention, are connected to video server 50 by communications bus 62. Communications bus 62 also provides video server 50 a connection to communications network 16 in Fig 1. Fig. 3 illustrates a block diagram of a video storage unit implementing a dual bus, dual port architecture according to the present invention. Video storage unit 60 stores videos in the form of digital video data files in storage module 102. Digital video data is moved from storage module 102 over either clear channel bus 104 or degraded mode bus 106 to buffer storage 108 or buffer storage 1 10, respectively. Clear channel bus 104 and degraded mode bus 106 may be implemented using presently available buses, such as, for example, a Peripheral Component Interconnect bus using the PCI standard. The digital video data is then moved to network adapter 112 or network adapter 114 and then to broadband communications network 16 via multiplexer unit 116 in the form of video data streams, in which each video data stream represents digital video data for a particular video. The movement of digital video data is controlled by control module 1 18 in video storage unit 60. Control module 118 includes a processor 120 and a memory 122 connected together by local bus 124. Local bus 124 connects these elements to clear channel bus 104 and degraded mode bus 106. Memory 122 contains the instructions or executable programs that control the movement of data in video storage unit 60. Requests for digital video data from storage module 102 are received by control module 1 18 from either communications network 16 through multiplexer 116 or through some other connection such as an ethemet adapter 126 in video storage unit 60. Storage module 102 includes M ranks of N disk drives in the depicted example. Each disk drive is a dual port disk drive, including two ports, port A and port B. Port A of each drive is connected to clear channel bus 104 while port B of each drive is connected to degraded mode bus 106. Storage module 102 may be implemented using presently available dual port disk drives. Digital video data can be striped across a rank of dual port disk drives, such as disk drives (0,0) to (0,N). Digital video data is retrieved from a rank of disk drives using port A in the rank of disk drives and stored in buffer 108a in buffer storage 108. When buffer 108a is full or ready to read by network adapter 112. data read from the rank is then stored in buffer 108b in buffer storage 108. In the depicted example, buffer 108a and buffer 108b are dual port storage buffers that allow simultaneous reads of the same memory location in a fully asynchronous operation from either port. Clear channel bus 104 in the depicted example is a PCI bus that presently sustains a rate of 80 megabytes per second on ranks 0 to M for data being read from port A out of storage module 102. In the event a disk drive fails in storage module 102, control module 118 accesses data from port B in the failed rank of disk drives such that the redundant drives in the failed rank of disk drives plus all other non-failing drives in the failed rank transfer digital video data and enor correction data, such as parity bits, over degraded mode bus 106 to buffer storage 1 10. Buffer storage 1 10 includes buffer 110a and buffer 1 10b. Additionally, buffer storage 110 also includes enor conection module 110c. The retrieved digital video data is reconstructed using error correction module 11 Oc and error correction data. In the depicted example, enor correction module 110c is a RAID parity assist module that is a hardware implementation of a RAID operation for parity correction. The responses back from the dual port storage 102 key the control module 118 if data is non-retrievable. That in turn invokes a RAID operation. The type of RAID operation performed depends on the RAID implementation used in storage module 102. According to the present invention, data may be reconstructed using degraded mode bus 106 while data from non-failing ranks of disk drives in storage module 102 are transferred over the clear channel bus. Increased bandwidth is achieved in clear channel bus 104 because error correction data, such as parity bits, do not have to be transferred with the digital video data. As a result, additional video data streams may be transfened through clear channel bus 104. Error correction data is transfened only in the event that an error occurs in retrieving data from storage module 102. At that time, digital video data and error conection data are retrieved and sent on degraded mode bus 106 for processing and for correcting any errors in data using RAID parity module 110c. As with buffer storage 108, reconstructed data along with other data is stored in buffer 110 until the data is ready to be transmitted or buffer 110a becomes full. At that point, data is transferred to network adapter 114 over degraded mode bus 106 while additional data is then read into buffer storage 110b. If a video being transmitted to a user is located on several ranks of disk drives, including a rank with a failed disk drive, data will be sent over both clear channel bus 104 and degraded mode bus 106 for this particular video stream. As a result, data for the video will be sent to network adapters 1 12 and 114. In the depicted example, network adapters 112 and 114 are ATM network adapters that group digital video data into "cells" and associate routing information, such as Virtual Channel Identifiers (VCIs) and Physical Channel Identifiers (PCIs), with the cells. More information on ATM can be found in Goralski. Introduction to ATM Networking, McGraw-Hill. Inc. (1995). Multiplexer 116 sends the data to the appropriate lines based on routing information, VCI and VPI, digital video associated with the data in network adapters 1 12 and 1 14. Multiplexer 116 sends the cells to the conect physical network link, such as link OC-3 and OC-12 in Fig. 1 using the PCI bus. Within each link, multiplexer 116 sends the cells to the conect virtual channel based on the VCI. Multiplexer 116 routes the reconstmcted video data as a function of the VCI to provide a seamless transfer of video data on as set up by and through the broadband network connected to the user. The VCI number is typically used as an unique identifier for the user on an physical channel. The physical channel is a connection that is maintained for transmitting reconstructive video data by multiplexer 116. The data containing the VCI and VPI for a particular video are maintained in memory 122 of control module 118. Additionally, according to the present invention, control module 118 may also send video data from non-failed ranks over degraded mode bus 106 without activated RAID parity assist module 110c. As a result, degraded mode bus 106 can provide the same bandwidth as clear channel bus 104. Additionally, the present invention recombines data from separate intemal buses, clear channel bus 104 and degraded mode bus 106, by employing switching characteristics from ATM protocols (i.e., VCI and VPI) to control dynamic switching to the communications network. By proper video data layout and placement in storage module 102, no degradation will occur if high use videos are not all placed on one rank. The present invention also provides the advantage of providing service to more users by the increased bandwidth supplied by clear channel bus 104 and degraded mode bus 106 when protection from failed storage devices is not required. Turning now to Fig. 4, there is illustrated a flowchart of a process for switching from a clear channel bus to a degraded mode bus in the event of an enor in a storage device. The process begins by requesting data transfer of video data using port A in storage module 102 (step 300). A determination is made as to whether a read enor has occurred (step 302). In the event that a read error has occurred, the RAID parity assist module is activated (step 304). The processor then requests data from port B in the storage module (step 306) with the process terminating thereafter. If no read error occurs, the process continues to transfer data on port A. In Fig. 5, a flowchart of a process for increasing the number of data streams in a video storage unit is depicted. The process begins by receiving a request to increase the number of data streams (step 350). A determination is made as to whether the clear channel bus can accommodate the additional data streams requested (step 352). The determination of whether additional data streams can be placed on the clear channel bus without degrading performance can be made by comparing the number of data streams presently being transferred on the clear channel data bus with a preselected number. This preselected number is calculated based on the various factors, such as the rate at which data must flow for the data streams, the size of the bus, and other factors related to the architecture ofthe video storage unit. If additional data streams can be maintained on the clear channel bus, the request for data is sent to port A ofthe disk drives (step 354). On the other hand, if additional data streams cannot be supported by the clear channel bus, a determination is made as to whether the degraded mode bus is being used in response to a disk failure (step 356). A determination also is made as to whether the degraded mode bus can handle an additional video data stream if the degraded mode bus is not being used in response to a disk failure (step 358). If the degraded mode bus is not being used for data involving a failed drive and can handle an additional video data stream requests, the process data from port B ofthe disk drives (step 360) with the process terminating thereafter. Steps 356, 358, and 360 are optional. In some instances, it is desirable to leave the degraded mode bus clear to handle a failure of a disk drive in storage module 102. If the degraded mode bus is being used for data involving a failed disk, the process retums an indication that additional data streams cannot be added (step 362). The present invention provides a relatively simple means to increase the number of video data streams from a disk storage array and to maintain the data stream rate at some selected level in the event of a storage device failure. The present invention provides an advantage of expanding the useable bus bandwidth for transmitting video data streams through using a dual port storage device in connection with a dual bus architecture. Although the depicted example shows hard drives, other types of dual port storage devices, such as optical disk drives, random access memories, or read only memories can be employed. In accordance with the present invention, the bandwidth can be extended up to a factor of three without employing expensive custom buses. Additionally, the present invention provides the advantage of allowing reconstruction of data from a failed rank of disk drives while allowing data from non-failing ranks of disk drives to be transferred over the clear channel bus and to broadband network connections using a multiplexer. While the invention has been particular shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that the invention is not restricted to the details of the foregoing embodiment. For example, although the depicted embodiment is directed towards data in the form of digital video data, the present invention may be employed for puφoses other than providing digital video data.

Claims: CLAIMS 1. Data storage apparatus (60) comprising: a first bus (104); a second bus (106); storage means (102) for storing data and having a first output and a second output, the first output being connected to the first bus (104) and the second output being connected to the second bus (106); first buffer storage means (108) connected to the first bus (104); second buffer storage means (110) connected to the second bus (106) and including error correction means (110c); first network adapter means (112) connected to an ouφut ofthe first buffer means (108); second network adapter means (114) connected to the second bus (106); and processor means (120) including a first processor means for transferring the data using a first path from the first ouφut to the first buffer storage means (108) and from the first buffer storage means (108) to the first network adapter means (1 12) and second processor means for transferring the data using a second path from the second ouφut to the second buffer storage means (110) and from the second buffer storage means (110) to the second network adapter means (1 14), wherein the second processor means is responsive to an error in the storage means (102) and wherein errors in data are detected and corrected by the error correction means (110c). 2. Apparatus as claimed in Claim 1, wherein the storage means (102) includes a plurality of storage devices. 3. Apparatus as claimed in Claim 2, wherein each ofthe plurality of storage devices are dual port storage devices wherein a first port is connected to the first output of the storage means (102) and a second port of each dual port storage device is connected to a second output ofthe storage means (102). 4. Apparatus as claimed in Claim 2 or 3, wherein the plurality of storage devices comprise hard disk drives. 5. Apparatus as claimed in Claim 4, wherein each of the hard disk drives comprises a dual port hard disk drive. 6. Apparatus as claimed in any one of the preceding claims, wherein the data comprises a plurality of files. 7. Apparatus as claimed in Claim 6, wherein the files comprise digital video files. 8. Data storage apparatus comprising: a first bus (104); a second bus (106); storage means (102) containing a plurality of storage devices and having a first output and a second output; first buffer storage means (108) connected to the first bus (104); second buffer storage means (110) connected to the second bus (106) and including error correction means (110c); first network adapter means (112) connected to the ouφut ofthe first buffer means (108); second network adapter means (114) connected to the second bus (106); and wherein the apparatus is arranged to have a first mode of operation in which the data is transfened from the first output to the first bus (104), from the first bus (104) to the first buffer storage means (108), and from the first buffer storage means (108) to the first network adapter means (1 12); and a second mode of operation, responsive to a failure of one of the plurality of storage devices in the storage means (102), in which data is transferred from the second output to the second buffer storage means (1 10) with parity bits, wherein the enor conection means (110c) verifies and conects enors in the data prior to the data being transferred to the second network adapter means (114). 9. Apparatus as claimed in Claim 8, wherein the plurality of storage devices are dual port storage devices, each storage device within the plurality of storage devices having a first port connected to the first output of the storage means (102) and a second port connected to the second output ofthe storage means (102). 10. Apparatus as claimed in Claim 8 or 9, wherein the plurality of storage devices comprise hard disk drives. 11. Apparatus as claimed in Claim 10, wherein each ofthe hard disk drives are dual port hard disk drives. 12. Apparatus as claimed in Claim 8, 9, 10 or 11 , wherein the first buffer storage means (108) and the second buffer storage means (110) comprise rotating buffers. 13. Apparatus as claimed in any one of Claims 8 to 12, and including a third mode of operation in which data is transferred from the first ouφut to the first bus (104) and to the first buffer storage means (108), data in the first buffer storage means (108) is transferred to the first network adapter means (112) and data is transferred from the second output to the second bus (106) to the second buffer storage means (114), and data in the second buffer storage means (114) is transferred to the second network adapter means (114) without activating the error correction means (110c). 14. Apparatus as claimed in any one of Claims 8 to 13, wherein the data comprises a plurality of videos in the form of digital video files. 15. Apparatus as claimed in any one of Claims 8 to 14, wherein the first bus (104) is a peripheral component interconnection bus and the second bus (106) is a peripheral component interconnection bus. 16. Apparatus as claimed in any one of Claims 8 to 15, wherein the first network adapter means (1 12) is an ATM network adapter and the second network adapter means (1 14) is an ATM network adapter. 17. A data storage system comprising: a first bus (104); a second bus (106); storage means (102) for storing data and connected to the first bus (104) and the second bus (106); and buffer storage means (108, 110) connected to the first bus (104) and the second bus (106) and including an error correction module (110c); means (118) for transferring data to the buffer storage means (108,110) using the first bus (104) until an error in data occurs in retrieving data from the storage means (102); and means, responsive to an error in retrieving data from the storage means (102), for transferring data to the buffer means (108, 110) using the second bus (106) and for checking errors in the data and correcting detected errors in the data using the error correction means (110c). 18. A system as claimed in Claim 17, wherein the buffer storage means (108, 110) includes a first buffer (108) connected to the first bus (104) and a second buffer (110) connected to the second bus (106). 19. A system as claimed in Claim 18, wherein the second buffer ( 110) is connected to the second bus (106) by the error correction means (110c). 20. A system as claimed in claim 18 or 19, wherein the first buffer ( 108) is a rotating buffer and the second buffer (110) is a rotating buffer. 21. A system as claimed in any one of Claims 18 to 20, further comprising first network adapter means (112) connected to the first bus (104) and a second network adapter means (1 14) connected to the second bus (106). 22. A system as claimed in Claim 21, wherein the data located in the first buffer (108) is transferred to the first network adapter means (112) and data located in the second buffer (110) is transferred to the second network adapter means (114). 23. A system as claimed in Claim 21 or 22, wherein the first network adapter means (112) includes a direct connection to the first buffer (108) and the data in the first buffer (108) is transferred to the first network adapter means (112) using the direct connection. 24. A system as claimed in Claim 21 , 22 or 23 , wherein the first and second network adapter means (112. 114) are ATM network adapters. 25. A system as claimed in any one of Claim 17 to 24, wherein the first bus (104) is connected to a system bus (124) in a computer. 26. A system as claimed in any one of Claims 17 to 25, wherein the second bus (106) is connected to a system bus (124) in a computer.

Inventors: DULAC KEITH BERNARD, PHILLIPS GROVER GEORGE, DULAC, KEITH, BERNARD, PHILLIPS, GROVER, GEORGE
Applicants: GILL DAVID ALAN, SYMBIOS LOGIC INC, GILL, DAVID, ALAN, SYMBIOS LOGIC INC.
Application year: 1996
Main classification: G06F11
IPC codes: G06F3, G06F11, G06F13, G11B20, G11B31, H04N5, H04N7