US5450609A - Drive array performance monitor - Google Patents

Drive array performance monitor Download PDF

Info

Publication number
US5450609A
US5450609A US08/163,395 US16339593A US5450609A US 5450609 A US5450609 A US 5450609A US 16339593 A US16339593 A US 16339593A US 5450609 A US5450609 A US 5450609A
Authority
US
United States
Prior art keywords
data
controller
measuring
time
controller means
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
US08/163,395
Inventor
Stephen M. Schultz
Richard A. Ewert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Compaq Computer Corp
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 Compaq Computer Corp filed Critical Compaq Computer Corp
Priority to US08/163,395 priority Critical patent/US5450609A/en
Application granted granted Critical
Publication of US5450609A publication Critical patent/US5450609A/en
Assigned to COMPAQ INFORMATION TECHNOLOGIES GROUP, L.P. reassignment COMPAQ INFORMATION TECHNOLOGIES GROUP, L.P. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: COMPAQ COMPUTER CORPORATION
Assigned to HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. reassignment HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: COMPAQ INFORMATION TECHNOLOGIES GROUP, LP
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Definitions

  • This invention relates generally to intelligent drive arrays, and more particularly to systems for monitoring the performance of such intelligent drive arrays.
  • Intelligent drive arrays are well known.
  • the COMPAQ SYSTEMPRO Personal Computer System which is manufactured by the assignee of the present invention offers the flexibility to be configured to meet a wide range of user needs, and is available in several standard model configurations each of which includes an intelligent drive array controller that is adaptable to two-drive, four-drive, six-drive and eight-drive arrays. Further information regarding a COMPAQ SYSTEMPRO Personal Computer System can be found in Technical Reference Guide: COMPAQ SYSTEMPRO Personal Computer System, Volumes I and II, Compaq Computer Corporation (1989), which are incorporated herein by reference.
  • COMPAQ SYSTEMPRO Personal Computer System One perceived problem with the above-noted COMPAQ SYSTEMPRO Personal Computer System, in spite of its overwhelming capabilities to process information, is its relative lack of information storage space. It has been suggested, therefore, that an intelligent array expansion system be provided to fully utilize the capabilities of file servers such as the COMPAQ SYSTEMPRO Personal Computer System.
  • Managers of such file servers must constantly supervise the system to ensure that it meets the needs of its users.
  • One certain aspect which needs to be monitored is the performance of the system information storage means (e.g., the intelligent drive arrays which are used in the COMPAQ SYSTEMPRO Personal Computer System, or other such intelligent array expansion systems which may be used).
  • the primary purpose of monitoring the storage means is to record and provide information which may be used to identify a performance degradation or, more cautiously, to predict a catastrophic hardware problem.
  • a system for monitoring performance of an intelligent array expansion system comprising controller means for communicating with a host computer and associated intelligent array expansion systems, each of which has a plurality of fixed disk drives.
  • the controller means incorporates firmware which is compatible with the register set and command passing protocol that is disclosed in the above-referenced "Bus Master Command Protocol", Ser. No 431,737, filed Nov. 3, 1989, now U.S. Pat. No. 5,249,279.
  • a plurality of predetermined performance data is monitored periodically by such firmware, and is thereafter stored in various information storage means. At the same time counts are maintained for selected parameters which are of interest to a systems manager. Such counts and the performance data are stored for a plurality of preselected intervals, and an indication or warning is given to the systems manager when performance data, or when a selected parameter exceeds a preselected threshold. This is usually accomplished by way of the host computer. Alternatively, however, a determination of exceeding the thresholds may be made by the controller means by way of the firmware itself with the parameter thresholds set by the host computer.
  • FIG. 1 is a functional block diagram of the drive array performance monitor according to the present invention, showing in detail controller means for an intelligent array expansion system;
  • FIG. 2 is a simplified diagram of the COMMAND used in controlling the drive array performance monitor shown in FIG. 1;
  • FIG. 3 is a flow diagram illustrating a system and method to implement the drive array performance monitor in accordance with the present invention.
  • FIG. 1 a functional block diagram of a drive array performance monitor 10 according to the present invention.
  • the drive array performance monitor 10 includes controller means 12 which is compatible with the register set and command passing protocol disclosed in the above-referenced "Bus Master Command Protocol", Ser. No. 431,737, filed Nov. 3, 1989, now U.S. Pat. No. 5,249,279. It does not, however, support all of the configuration options or fault tolerant features of the intelligent drive array which incorporates such protocol. Instead, it provides high-performance access to a large amount of disk storage while using only one EISA slot.
  • the controller means 12 is capable of efficiently managing access of up to seven small computer system interface (SCSI) drives 14 on a single. SCSI bus, and will allow those disks in the drives 14 to be presented to the system as a unique volume or as a number of drives 14. Further information regarding the controller means 12 may be found in copending "Disk Controller With Separate Data and Command Paths", Ser. No. 07/612,135, filed Nov. 13, 1990.
  • Controller means 12 includes a bus master interface which allows access to the drives 14 and provides several compatibility and performance features. When writing new disk device drivers, port selection depends on the softwares particular needs for speed and compatibility.
  • the bus master interface provides a 32-bit data path and up to 33 Megabytes per second (Mb/s) transfer rate between the system memory and the controller means 12.
  • Mc/s Megabytes per second
  • This high-speed port includes the control and status registers necessary to respond to commands and requests when processing data transfers. Because it can handle multiple requests, the bus master interface 14 can receive and service requests in the order that offers the highest overall throughput. To take advantage of such performance features, therefore, the operating system disk device driver must be specifically written for use with the bus master interface.
  • a bus master interface controller (BMIC) 16 has two channels that are multiplexed in its internal data transfer controller.
  • the two channels can be programmed for unrelated transfers, and one of these channels 18 is dedicated for command list transfers from the host 20 into the adaptor, while the other channel 22 is dedicated to data transfers to and from the drives 14 via a SCSI bus 24.
  • a dual-ported RAM (8K ⁇ 16) 26 resides between the BMIC 16 and microprocessor 28.
  • the BMIC 16 thereby, becomes a bus master and brings the command lists into the dual-ported RAM 26 using the channel 18 that is assigned to command list transfers.
  • the dual-ported command list RAM 26 occupies address space of microprocessor 28, so that it has immediate access to the command list. Commands are first converted to SCSI command descriptor blocks (CDB's) and then queued in a local processor RAM 30.
  • CDB's SCSI command descriptor blocks
  • a FIFO (1K ⁇ 16) 32 links the SCSI controller 34 (e.g., an NCR 53C95 manufactured by NCR Corporation) and the BMIC 16 together for passing data.
  • FIFO 32 guarantees that the BMIC 16 will be able to transfer enough data each time that it gets on the EISA bus, for efficient host bus utilization.
  • FIFO 32 is managed by discrete logic and tristate buffers so that a single direction part can be utilized as a bidirectional link.
  • the second channel in BMIC 16 is associated with this data FIFO 32 so that both data transfers in either direction and a command list transfer can be programmed in the BMIC 16 at the same time.
  • the controller means 12 also contains some registers which are implemented in discrete logic for EISA configuration and board configuration.
  • the controller means 12 preferably employs an 80286 microprocessor 28, which is coupled with various support chips and discrete logic to manage bus cycles, interrupts, and timer functions.
  • Microprocessor 28 also comprises a local RAM 30 for its processing needs and a ROM 36 containing the firmware for the controller means 12, as well as that for the drive array performance monitor 10 according to the present invention.
  • the interface to the SCSI bus 24 is through the SCSI controller 34 which has a microprocessor port for programming the part and a DMA port for passing data to and from the SCSI bus 24. Both ports can be accessed simultaneously so that microprocessor 28 can program the part for the next bus phase while data is being transferred through the DMA port.
  • COMMAND 100 comprises a BMIC portion 102 which is common to BMIC commands following a protocol described in copending application "Bus Master-Command Protocol", Ser. No. 431,737, filed Nov. 3, 1989, now U.S. Pat. No. 5,249,279.
  • BMIC portion 102 Three additional portions are append to BMIC portion 102 in order to carry out systems and methods according to the present invention.
  • a first portion 104 is set to identify the particular drive 14 which is to be monitored, while second portion 106 is set to identify selected status/option flags and third portion 108 is set to identify a particular data type.
  • the COMMAND 100 is passed to controller means 12 from the host 20 via the host bus 38 shown in FIG. 1. Thereafter, the controller means 12 reads in the COMMAND 100, parses it out into discrete steps, and performs those discrete steps as specified by the firmware embedded in RAM 30 and ROM 36 (FIG. 1). Particular data required by the COMMAND 100 is obtained by performing one or more selected performance tests on the drives 14; for example, the performance tests can be variations on seek time performance tests.
  • a "SEEK -- TIME -- TRACK" test is performed as follows: (1) beginning at track 0, a drive 14 is instructed to seek to its next block; (2) the time to perform this step is saved in memory; (3) steps (1) and (2) are repeated a preselected number of times (e.g., ten times); and (4) an average is determined from the results of those number of seek times "track".
  • a "SEEK -- TIME -- THIRD" test is performed as follows: (1) after having determined what constitutes a "third stroke" of the disks in drive 14, the drive 14 is instructed to seek a third; (2) the time to perform step (1) is saved in memory; (3) the drive 16 is again instructed to seek a third; (4) the time to perform step (3) is also saved in memory; (5) the drive 14 is instructed to seek back to where it started step (1); (6) the time to perform step (5) is saved in memory; (7) an average of the times measured in steps (2), (4) and (6) is determined; (8) the cycle defined by steps (1) through (7) are repeated a preselected number of times (e.g., ten times); and (9) an average of the averages determined by each of the steps (7) is determined from the results of those number of seek times "third".
  • a preselected number of times e.g., ten times
  • a "SEEK -- TIME -- FULL" test is performed as follows: (1) the drive 14 is instructed to seek a "full stroke", from inside to outside and back; (2) and average of each of the full stroke seeks is determined; (3) steps (1) and (2) are repeated a predetermined number of times (e.g., ten times); and (4) an average of the averages determined by each of the steps (2) is determined from the results of those number of seek times "full".
  • second portion 106 is set to identify selected status/option flags for the COMMAND 100.
  • Such status/option flags are used by the host 20 to instruct controller means 12 exactly what is to be done.
  • a status/option flag value of "1" signifies an instruction to "SAMPLE” (i.e., run performance tests as outlined above).
  • a status/option flag value of "2" signifies an instruction to "RETURN DATA” to the host 20 on completion of a "SAMPLE”
  • status/option flag value of "3" signifies an instruction to "RESET” the second set of data to zero
  • status/option flag value of "4" signifies an instruction to "SAVE” after having sampled the data
  • status/option flag value of "8” signifies a factory initialization bit which instructs controller means 12 to run the performance tests noted above after manufacture and save those values in the first data set.
  • Third portion 108 is set to identify particular data types. That is, one data type according to the preferred embodiment of the invention is performance and statistical data since the drive 14 was manufactured. Such data is saved to the reserved space on each of the drives 14, and is updated periodically. Another data type comprises the performance and statistical data since the drive 14 was last "RESET" by the system manager. This "SINCE -- LAST -- RESET” data set is also saved to the reserved space on each of the drives 14, and is updated periodically. Furthermore, the values of such data will be initialized to zero when "RESET" status/option flag is set. Two other data sets, the third and fourth data sets, are maintained in local RAM 30 as noted above. The third data set is used to keep a running count of the statistical data taken since the drive array was powered on, while the fourth set of data keeps another running count of such statistical data.
  • the drive array performance monitor 10 cause the host 20 to issue a COMMAND 100 to run performance tests, and save such data to the particular data sets.
  • Timer/counter 40 (FIG. 1) may be set to go off, for example, every hour.
  • host 20 issues the COMMAND 100 for drive array performance monitor 10 to conduct performance tests and save the current counts of the statistical data kept to date by the timer/counter 40.
  • the current count maintained by the fourth data set in RKM 30 is added to the amounts saved in the third data set in RAM 30.
  • the fourth data set is set back to zero, and the third data set represents an updated version of the statistical data maintained since last power on.
  • results of each of the performance tests made are saved to the first and second data sets.
  • the results are compared with the initial data maintained in the first data set or the since last reset data maintained in the second data set, and a comparison may be made to determine if changes in those results exceed a preselected threshold. If so, a warning is sent to the host 20 to alert the system manager, or alternatively, the firmware itself may be used to provide an indication (e.g., a flashing LED) on the intelligent array expansion system.
  • the statistical data which is counted by the timer/counter 40 in accordance with the preferred embodiment of this invention is selected from the group consisting of a number of sectors read, a number of hard read errors, a number of retry read errors, a number of ECC read errors, a number of sectors written, a number of hard write errors, a number of retry write errors, a number of seeks, a number of seek errors, a number of spin cycles, a number of reallocation sectors, and a number of reallocated sectors. All or some of this data may be counted depending upon the particular needs of the system manager.
  • FIG. 3 a flow diagram illustrates the system and method for implementing drive array performance monitor 10 in accordance with the present invention.
  • the COMMAND 100 is received from the host 20 by the controller means 12 and executed thereby through firmware at step 110.
  • An analysis is then made at step 112 as to whether factory initialize bit has been set. If not, then such bit should be set at the status/option flag portion 106 of the COMMAND 100. At the time of initial manufacture, however, this flag should be set and initial performance tests run to determine baseline values. Then the baseline performance values are saved at step 114.
  • Timer/counter 40 (FIG. 1) is then zeroed at step 116 to ensure accurate maintenance of statistical data and time during a particular period under evaluation (e.g., since last reset, since power on, etc.).
  • An analysis is made by the firmware at step 118 whether or not the reset status/option flag has been set, and, if so the second data set of statistics is zeroed at step 120. Were the reset status/option flag not set, further determinations will be made at step 122 to see whether power is on to the drive array.
  • step 124 a manual operation must be made at step 124 to turn on power. Thereafter, the performance tests that are described above will be performed at step 126, as in the cases where power is turned on as determined by step 122. Data from the performance tests are then saved in a manner previously described, at step 128.
  • step 130 a determination is made as to whether timer/counter 40 (FIG. 1) has expired (e.g., the one hour period since the last performance tests has run out). If not, counts for the selected statistics will continue as shown at step 132. If so, another set of performance tests will be made and the statistical counts will be updated in the stored data sets as described above, at step 134. Periodically (in essence .continuously), the firmware will assess whether one or more of a plurality of preselected data thresholds have been exceeded, as shown at step 136. If not, the counts will continue in the manner shown at step 132.
  • a warning may be issued at indicator #4.
  • Such warning alternatively will be a displayed notice to the host 20 through the host bus 38, or it may be a visible indicator on the drive array, as driven by the firmware described herein.
  • a flashing amber indicator upon the drive array can be used to indicate such degradation.
  • the firmware can drive the amber indicator steadily lit.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A system for monitoring performance of an intelligent array expansion system includes a controller for communicating with a host computer and associated intelligent array expansion systems, each of which has a plurality of fixed disk drives. The controller incorporates firmware to monitor a plurality of predetermined performance data, such data being thereafter stored in information storage devices. At the same time counts are maintained for selected parameters which are of interest to a systems manager. Such counts and the performance data are stored for each one of a plurality of preselected intervals, and an indication or warning is given to the systems manager when performance data, or when a selected parameter exceeds a preselected threshold.

Description

This is a continuation of application Ser. No. 07/612,308 filed on Nov. 13, 1990, now abandoned.
CROSS REFERENCE TO RELATED APPLICATIONS
This application is related to the following and commonly assigned applications: "Disk Array Controller With Parity Capabilities", Ser. No. 431,735, filed Nov. 3, 1989, now U.S. Pat. No. 5,206,943, "Bus Master Command Protocol", Ser. No. 431,737, filed Nov. 3, 1989, now U.S. Pat. No. 5,249,279, as well as "Disk Controller With Separate Data and Command Paths", Ser. No. 07/612,135, filed Nov. 13, 1990, now U.S. Pat. No. 5,241,630, each of which is incorporated herein by reference.
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to intelligent drive arrays, and more particularly to systems for monitoring the performance of such intelligent drive arrays.
2. Statement of the Prior Art
Intelligent drive arrays are well known. For example, the COMPAQ SYSTEMPRO Personal Computer System which is manufactured by the assignee of the present invention offers the flexibility to be configured to meet a wide range of user needs, and is available in several standard model configurations each of which includes an intelligent drive array controller that is adaptable to two-drive, four-drive, six-drive and eight-drive arrays. Further information regarding a COMPAQ SYSTEMPRO Personal Computer System can be found in Technical Reference Guide: COMPAQ SYSTEMPRO Personal Computer System, Volumes I and II, Compaq Computer Corporation (1989), which are incorporated herein by reference.
One perceived problem with the above-noted COMPAQ SYSTEMPRO Personal Computer System, in spite of its overwhelming capabilities to process information, is its relative lack of information storage space. It has been suggested, therefore, that an intelligent array expansion system be provided to fully utilize the capabilities of file servers such as the COMPAQ SYSTEMPRO Personal Computer System.
Managers of such file servers must constantly supervise the system to ensure that it meets the needs of its users. One certain aspect which needs to be monitored is the performance of the system information storage means (e.g., the intelligent drive arrays which are used in the COMPAQ SYSTEMPRO Personal Computer System, or other such intelligent array expansion systems which may be used). The primary purpose of monitoring the storage means is to record and provide information which may be used to identify a performance degradation or, more cautiously, to predict a catastrophic hardware problem.
SUMMARY OF THE INVENTION
A system for monitoring performance of an intelligent array expansion system comprising controller means for communicating with a host computer and associated intelligent array expansion systems, each of which has a plurality of fixed disk drives. The controller means incorporates firmware which is compatible with the register set and command passing protocol that is disclosed in the above-referenced "Bus Master Command Protocol", Ser. No 431,737, filed Nov. 3, 1989, now U.S. Pat. No. 5,249,279.
A plurality of predetermined performance data is monitored periodically by such firmware, and is thereafter stored in various information storage means. At the same time counts are maintained for selected parameters which are of interest to a systems manager. Such counts and the performance data are stored for a plurality of preselected intervals, and an indication or warning is given to the systems manager when performance data, or when a selected parameter exceeds a preselected threshold. This is usually accomplished by way of the host computer. Alternatively, however, a determination of exceeding the thresholds may be made by the controller means by way of the firmware itself with the parameter thresholds set by the host computer.
These and other objects according to the present invention will become more apparent from the following detailed description of a preferred embodiment thereof, when considered in conjunction with the accompanying drawings wherein:
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a functional block diagram of the drive array performance monitor according to the present invention, showing in detail controller means for an intelligent array expansion system;
FIG. 2 is a simplified diagram of the COMMAND used in controlling the drive array performance monitor shown in FIG. 1; and
FIG. 3 is a flow diagram illustrating a system and method to implement the drive array performance monitor in accordance with the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Referring now to the drawings, wherein like numbers designate like or corresponding parts throughout each of the several views, there is shown in FIG. 1 a functional block diagram of a drive array performance monitor 10 according to the present invention.
As noted previously herein above, the drive array performance monitor 10 includes controller means 12 which is compatible with the register set and command passing protocol disclosed in the above-referenced "Bus Master Command Protocol", Ser. No. 431,737, filed Nov. 3, 1989, now U.S. Pat. No. 5,249,279. It does not, however, support all of the configuration options or fault tolerant features of the intelligent drive array which incorporates such protocol. Instead, it provides high-performance access to a large amount of disk storage while using only one EISA slot. The controller means 12 is capable of efficiently managing access of up to seven small computer system interface (SCSI) drives 14 on a single. SCSI bus, and will allow those disks in the drives 14 to be presented to the system as a unique volume or as a number of drives 14. Further information regarding the controller means 12 may be found in copending "Disk Controller With Separate Data and Command Paths", Ser. No. 07/612,135, filed Nov. 13, 1990.
Controller means 12 includes a bus master interface which allows access to the drives 14 and provides several compatibility and performance features. When writing new disk device drivers, port selection depends on the softwares particular needs for speed and compatibility. The bus master interface provides a 32-bit data path and up to 33 Megabytes per second (Mb/s) transfer rate between the system memory and the controller means 12. This high-speed port includes the control and status registers necessary to respond to commands and requests when processing data transfers. Because it can handle multiple requests, the bus master interface 14 can receive and service requests in the order that offers the highest overall throughput. To take advantage of such performance features, therefore, the operating system disk device driver must be specifically written for use with the bus master interface.
A bus master interface controller (BMIC) 16 has two channels that are multiplexed in its internal data transfer controller. The two channels can be programmed for unrelated transfers, and one of these channels 18 is dedicated for command list transfers from the host 20 into the adaptor, while the other channel 22 is dedicated to data transfers to and from the drives 14 via a SCSI bus 24.
A dual-ported RAM (8K×16) 26 resides between the BMIC 16 and microprocessor 28. The BMIC 16, thereby, becomes a bus master and brings the command lists into the dual-ported RAM 26 using the channel 18 that is assigned to command list transfers. The dual-ported command list RAM 26 occupies address space of microprocessor 28, so that it has immediate access to the command list. Commands are first converted to SCSI command descriptor blocks (CDB's) and then queued in a local processor RAM 30.
A FIFO (1K×16) 32 links the SCSI controller 34 (e.g., an NCR 53C95 manufactured by NCR Corporation) and the BMIC 16 together for passing data. FIFO 32 guarantees that the BMIC 16 will be able to transfer enough data each time that it gets on the EISA bus, for efficient host bus utilization. Furthermore, FIFO 32 is managed by discrete logic and tristate buffers so that a single direction part can be utilized as a bidirectional link. The second channel in BMIC 16 is associated with this data FIFO 32 so that both data transfers in either direction and a command list transfer can be programmed in the BMIC 16 at the same time. The controller means 12 also contains some registers which are implemented in discrete logic for EISA configuration and board configuration.
As is readily apparent from FIG. 1, the controller means 12 preferably employs an 80286 microprocessor 28, which is coupled with various support chips and discrete logic to manage bus cycles, interrupts, and timer functions. Microprocessor 28 also comprises a local RAM 30 for its processing needs and a ROM 36 containing the firmware for the controller means 12, as well as that for the drive array performance monitor 10 according to the present invention. The interface to the SCSI bus 24 is through the SCSI controller 34 which has a microprocessor port for programming the part and a DMA port for passing data to and from the SCSI bus 24. Both ports can be accessed simultaneously so that microprocessor 28 can program the part for the next bus phase while data is being transferred through the DMA port.
Referring now to FIG. 2, there is shown therein a block diagram of a COMMAND which is used in controlling the drive array performance monitor 10 shown in FIG. 1. As shown in FIG. 2, COMMAND 100 comprises a BMIC portion 102 which is common to BMIC commands following a protocol described in copending application "Bus Master-Command Protocol", Ser. No. 431,737, filed Nov. 3, 1989, now U.S. Pat. No. 5,249,279. Three additional portions are append to BMIC portion 102 in order to carry out systems and methods according to the present invention. A first portion 104 is set to identify the particular drive 14 which is to be monitored, while second portion 106 is set to identify selected status/option flags and third portion 108 is set to identify a particular data type.
The COMMAND 100 is passed to controller means 12 from the host 20 via the host bus 38 shown in FIG. 1. Thereafter, the controller means 12 reads in the COMMAND 100, parses it out into discrete steps, and performs those discrete steps as specified by the firmware embedded in RAM 30 and ROM 36 (FIG. 1). Particular data required by the COMMAND 100 is obtained by performing one or more selected performance tests on the drives 14; for example, the performance tests can be variations on seek time performance tests.
In accordance with a particularly preferred embodiment of this invention, three separate seek tests are performed on drives 14 when the COMMAND 100 is received by controller means 12. First, a "SEEK-- TIME-- TRACK" test is performed as follows: (1) beginning at track 0, a drive 14 is instructed to seek to its next block; (2) the time to perform this step is saved in memory; (3) steps (1) and (2) are repeated a preselected number of times (e.g., ten times); and (4) an average is determined from the results of those number of seek times "track".
Second, a "SEEK-- TIME-- THIRD" test is performed as follows: (1) after having determined what constitutes a "third stroke" of the disks in drive 14, the drive 14 is instructed to seek a third; (2) the time to perform step (1) is saved in memory; (3) the drive 16 is again instructed to seek a third; (4) the time to perform step (3) is also saved in memory; (5) the drive 14 is instructed to seek back to where it started step (1); (6) the time to perform step (5) is saved in memory; (7) an average of the times measured in steps (2), (4) and (6) is determined; (8) the cycle defined by steps (1) through (7) are repeated a preselected number of times (e.g., ten times); and (9) an average of the averages determined by each of the steps (7) is determined from the results of those number of seek times "third".
Third, a "SEEK-- TIME-- FULL" test is performed as follows: (1) the drive 14 is instructed to seek a "full stroke", from inside to outside and back; (2) and average of each of the full stroke seeks is determined; (3) steps (1) and (2) are repeated a predetermined number of times (e.g., ten times); and (4) an average of the averages determined by each of the steps (2) is determined from the results of those number of seek times "full".
Subsequent to the performance of the above-described tests, their results are stored as four separate data sets in the manner outlined below. First and second sets of the data are maintained in the reserved space on each of those drives 14 in a given array. The third and fourth sets of data are maintained in RAM 30 (FIG. 1) for reasons that will become more apparent from the description below.
As noted previously herein above, second portion 106 is set to identify selected status/option flags for the COMMAND 100. Such status/option flags are used by the host 20 to instruct controller means 12 exactly what is to be done. For example, in the presently preferred embodiment of this invention, a status/option flag value of "1" signifies an instruction to "SAMPLE" (i.e., run performance tests as outlined above). On the other hand, a status/option flag value of "2" signifies an instruction to "RETURN DATA" to the host 20 on completion of a "SAMPLE"; status/option flag value of "3" signifies an instruction to "RESET" the second set of data to zero; status/option flag value of "4" signifies an instruction to "SAVE" after having sampled the data; and status/option flag value of "8" signifies a factory initialization bit which instructs controller means 12 to run the performance tests noted above after manufacture and save those values in the first data set.
Third portion 108 is set to identify particular data types. That is, one data type according to the preferred embodiment of the invention is performance and statistical data since the drive 14 was manufactured. Such data is saved to the reserved space on each of the drives 14, and is updated periodically. Another data type comprises the performance and statistical data since the drive 14 was last "RESET" by the system manager. This "SINCE-- LAST-- RESET" data set is also saved to the reserved space on each of the drives 14, and is updated periodically. Furthermore, the values of such data will be initialized to zero when "RESET" status/option flag is set. Two other data sets, the third and fourth data sets, are maintained in local RAM 30 as noted above. The third data set is used to keep a running count of the statistical data taken since the drive array was powered on, while the fourth set of data keeps another running count of such statistical data.
Periodically, the drive array performance monitor 10 cause the host 20 to issue a COMMAND 100 to run performance tests, and save such data to the particular data sets. Timer/counter 40 (FIG. 1) may be set to go off, for example, every hour. When a given time period expires and the timer/counter 40 goes off, host 20 issues the COMMAND 100 for drive array performance monitor 10 to conduct performance tests and save the current counts of the statistical data kept to date by the timer/counter 40. After those tests are performed in the manner outlined above, the current count maintained by the fourth data set in RKM 30 is added to the amounts saved in the third data set in RAM 30. The fourth data set is set back to zero, and the third data set represents an updated version of the statistical data maintained since last power on.
At the same time, results of each of the performance tests made are saved to the first and second data sets. The results are compared with the initial data maintained in the first data set or the since last reset data maintained in the second data set, and a comparison may be made to determine if changes in those results exceed a preselected threshold. If so, a warning is sent to the host 20 to alert the system manager, or alternatively, the firmware itself may be used to provide an indication (e.g., a flashing LED) on the intelligent array expansion system.
The statistical data which is counted by the timer/counter 40 in accordance with the preferred embodiment of this invention is selected from the group consisting of a number of sectors read, a number of hard read errors, a number of retry read errors, a number of ECC read errors, a number of sectors written, a number of hard write errors, a number of retry write errors, a number of seeks, a number of seek errors, a number of spin cycles, a number of reallocation sectors, and a number of reallocated sectors. All or some of this data may be counted depending upon the particular needs of the system manager.
Referring now to FIG. 3, a flow diagram illustrates the system and method for implementing drive array performance monitor 10 in accordance with the present invention. Beginning with the indicator #1, the COMMAND 100 is received from the host 20 by the controller means 12 and executed thereby through firmware at step 110. An analysis is then made at step 112 as to whether factory initialize bit has been set. If not, then such bit should be set at the status/option flag portion 106 of the COMMAND 100. At the time of initial manufacture, however, this flag should be set and initial performance tests run to determine baseline values. Then the baseline performance values are saved at step 114.
Timer/counter 40 (FIG. 1) is then zeroed at step 116 to ensure accurate maintenance of statistical data and time during a particular period under evaluation (e.g., since last reset, since power on, etc.). An analysis is made by the firmware at step 118 whether or not the reset status/option flag has been set, and, if so the second data set of statistics is zeroed at step 120. Were the reset status/option flag not set, further determinations will be made at step 122 to see whether power is on to the drive array.
If the power is not on, a manual operation must be made at step 124 to turn on power. Thereafter, the performance tests that are described above will be performed at step 126, as in the cases where power is turned on as determined by step 122. Data from the performance tests are then saved in a manner previously described, at step 128. At step 130, a determination is made as to whether timer/counter 40 (FIG. 1) has expired (e.g., the one hour period since the last performance tests has run out). If not, counts for the selected statistics will continue as shown at step 132. If so, another set of performance tests will be made and the statistical counts will be updated in the stored data sets as described above, at step 134. Periodically (in essence .continuously), the firmware will assess whether one or more of a plurality of preselected data thresholds have been exceeded, as shown at step 136. If not, the counts will continue in the manner shown at step 132.
On the other hand, if the thresholds have been exceeded, a warning may be issued at indicator #4. Such warning alternatively will be a displayed notice to the host 20 through the host bus 38, or it may be a visible indicator on the drive array, as driven by the firmware described herein. For example, if one threshold has been exceeded that merely represents a degraded drive, a flashing amber indicator upon the drive array can be used to indicate such degradation. On the other hand, if device-threatening thresholds are exceeded, the firmware can drive the amber indicator steadily lit.
Obviously, many modifications and variations of the above described invention are possible in light of these teachings. It should be readily apparent, therefore, that within a scope of the appended claims, the invention may be practiced otherwise than as is specifically described herein.

Claims (16)

What we claim is:
1. A system for monitoring performance of an intelligent array expansion unit having a plurality of disk drives, comprising:
a host computer;
controller means, coupled to said host computer, to control transfer of data to and from the plurality of disk drives;
means, associated with said controller means, for measuring operation time of one or more preselected physical movements;
means, associated with said controller means, for periodically activating said measuring means; and
means, associated with said controller means, for storing said measured operation times to a log for each activation of said measuring means and for retrieving said operation times from said log.
2. The system of claim 1, further comprising:
means, associated with said controller means, for counting one or more preselected statistical parameters; and
means, associated with said controller means, for storing and retrieving said statistical parameters.
3. The system according to claim 2, further comprising means for tracking an amount of time elapsed since a predetermined event.
4. The system according to claim 3, wherein said predetermined event is selected from the group consisting of a time since manufacture of the disk drive, a time since the intelligent array expansion unit was last reset, and a time since the intelligent array was last powered on.
5. The system according to claim 2, wherein said counting means counts a plurality of statistics selected from the group consisting of a number of sectors read, a number of hard read errors, a number of retry read errors, a number of ECC read errors, a number of sectors written, a number of hard write errors, a number of retry write errors, a number of seeks, a number of seek errors, a number of spin cycles, a number of reallocation sectors, and a number of reallocated sectors.
6. The system according to claim 1, wherein said measuring means measures a seek time track.
7. The system according to claim 1, wherein said measuring means measures a seek time third.
8. The system according to claim 1, wherein said measuring means measures a seek time full.
9. The system according to claim 1, wherein said measuring means measures a parameter related to seek time for a predetermined number of times, and thereafter determines an average of said seek time related parameter.
10. The system according to claim 1, further comprising means for determining which one of the plurality of disk drives is being measured or counted, said determining means including means for storing said determination to said log.
11. A method of monitoring an intelligent array expansion system having a plurality of disk drives and coupled to a host computer, comprising the steps of:
providing controller means, coupled to said host computer, to control transfer of data to and from the plurality of disk drives;
associating means within said controller means for measuring operation time of one or more preselected physical movements;
associating means within said controller means for measuring each one of said physical movement operation times at periodic intervals; and
storing said measuring operation times to a log.
12. The method according to claim 11, further comprising the steps of:
associating means within said controller means for counting one or more preselected statistical parameters; and
storing said counted statistical parameters at periodic intervals.
13. The method according to claim 12, further comprising the steps of:
retrieving said stored statistical parameters; and
updating said retrieved statistical parameters with current data.
14. The method according to claim 12, further comprising the step of providing a warning to the host computer when one or more of said statistical parameters exceeds a preselected threshold.
15. The method according to claim 11, further comprising the steps of:
retrieving said stored operation times from said log.
16. The method according to claim 11, further comprising the step of providing a warning to the host computer when one or more of said operation times exceeds a preselected threshold.
US08/163,395 1990-11-13 1993-12-06 Drive array performance monitor Expired - Lifetime US5450609A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/163,395 US5450609A (en) 1990-11-13 1993-12-06 Drive array performance monitor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US61230890A 1990-11-13 1990-11-13
US08/163,395 US5450609A (en) 1990-11-13 1993-12-06 Drive array performance monitor

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US61230890A Continuation 1990-11-13 1990-11-13

Publications (1)

Publication Number Publication Date
US5450609A true US5450609A (en) 1995-09-12

Family

ID=24452629

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/163,395 Expired - Lifetime US5450609A (en) 1990-11-13 1993-12-06 Drive array performance monitor

Country Status (1)

Country Link
US (1) US5450609A (en)

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0821308A1 (en) * 1996-07-23 1998-01-28 Hewlett-Packard Company Error indication for a storage system with removable media
EP0821307A1 (en) * 1996-07-23 1998-01-28 Hewlett-Packard Company Error indication for a storage system with removable media
EP0825537A1 (en) * 1996-07-23 1998-02-25 Hewlett-Packard Company Error indication for a storage system with removable media
US5732223A (en) * 1991-03-11 1998-03-24 Future Domain Corporation, Inc. SCSI host adapter with shared command and data buffer
US5758189A (en) * 1994-06-23 1998-05-26 Fujitsu Limited System for changing period to examine external storage unit for storage medium being loaded based on state of use of input device
US5764881A (en) * 1995-03-20 1998-06-09 Fujitsu Limited Read/write apparatus and alternation process method
US5983316A (en) * 1997-05-29 1999-11-09 Hewlett-Parkard Company Computing system having a system node that utilizes both a logical volume manager and a resource monitor for managing a storage pool
US5987400A (en) * 1997-05-08 1999-11-16 Kabushiki Kaisha Toshiba System for monitoring the throughput performance of a disk storage system
US5991708A (en) * 1997-07-07 1999-11-23 International Business Machines Corporation Performance monitor and method for performance monitoring within a data processing system
US6029226A (en) * 1996-09-30 2000-02-22 Lsi Logic Corporation Method and apparatus having automated write data transfer with optional skip by processing two write commands as a single write command
US6163840A (en) * 1997-11-26 2000-12-19 Compaq Computer Corporation Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline
US6175814B1 (en) 1997-11-26 2001-01-16 Compaq Computer Corporation Apparatus for determining the instantaneous average number of instructions processed
US6195748B1 (en) 1997-11-26 2001-02-27 Compaq Computer Corporation Apparatus for sampling instruction execution information in a processor pipeline
US6237073B1 (en) 1997-11-26 2001-05-22 Compaq Computer Corporation Method for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information
US6237059B1 (en) 1997-11-26 2001-05-22 Compaq Computer Corporation Method for estimating statistics of properties of memory system interactions among contexts in a computer system
US6332178B1 (en) 1997-11-26 2001-12-18 Compaq Computer Corporation Method for estimating statistics of properties of memory system transactions
US6366981B1 (en) * 1997-12-05 2002-04-02 Nec Corporation Disc array apparatus having a presupposed response time and a number of disc units
US6374367B1 (en) 1997-11-26 2002-04-16 Compaq Computer Corporation Apparatus and method for monitoring a computer system to guide optimization
US6442585B1 (en) 1997-11-26 2002-08-27 Compaq Computer Corporation Method for scheduling contexts based on statistics of memory system interactions in a computer system
US6549930B1 (en) 1997-11-26 2003-04-15 Compaq Computer Corporation Method for scheduling threads in a multithreaded processor
US6643735B2 (en) * 2001-12-03 2003-11-04 International Business Machines Corporation Integrated RAID system with the capability of selecting between software and hardware RAID
US20040049632A1 (en) * 2002-09-09 2004-03-11 Chang Albert H. Memory controller interface with XOR operations on memory read to accelerate RAID operations
US20040225689A1 (en) * 2003-05-08 2004-11-11 International Business Machines Corporation Autonomic logging support
US20050060477A1 (en) * 2003-08-29 2005-03-17 Wilkins Virgil V. High-speed I/O controller having separate control and data paths
US20050076260A1 (en) * 2003-10-07 2005-04-07 Ching-Hai Hung Raid consistency initialization method
US20060085595A1 (en) * 2004-10-14 2006-04-20 Slater Alastair M Identifying performance affecting causes in a data storage system
US20060200357A1 (en) * 2005-02-23 2006-09-07 International Business Machines (Ibm) Corporation Policy based data shredding for storage controller
US20060200726A1 (en) * 2005-03-03 2006-09-07 Seagate Technology Llc Failure trend detection and correction in a data storage array
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
US20090235113A1 (en) * 2006-05-18 2009-09-17 Rambus Inc. Memory error detection
US7957370B2 (en) 1993-02-01 2011-06-07 Lake Cherokee Hard Drive Technologies, Llc Synchronous read channel
US20130238941A1 (en) * 2010-10-14 2013-09-12 Fujitsu Limited Storage control apparatus, method of setting reference time, and computer-readable storage medium storing reference time setting program
US9213591B1 (en) 2006-01-11 2015-12-15 Rambus Inc. Electrically erasable programmable memory device that generates a cyclic redundancy check (CRC) code
US9274892B2 (en) 2005-06-03 2016-03-01 Rambus Inc. Memory chip with error detection and retry modes of operation
US9459960B2 (en) 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US11237893B2 (en) 2019-06-26 2022-02-01 Western Digital Technologies, Inc. Use of error correction-based metric for identifying poorly performing data storage devices
US11361839B2 (en) 2018-03-26 2022-06-14 Rambus Inc. Command/address channel error detection

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3585599A (en) * 1968-07-09 1971-06-15 Ibm Universal system service adapter
US3704363A (en) * 1971-06-09 1972-11-28 Ibm Statistical and environmental data logging system for data processing storage subsystem
US3787670A (en) * 1971-12-20 1974-01-22 Honeywell Inf Systems Automatic diagnostic system
US4048481A (en) * 1974-12-17 1977-09-13 Honeywell Information Systems Inc. Diagnostic testing apparatus and method
US4213178A (en) * 1978-10-23 1980-07-15 International Business Machines Corporation Input/output command timing mechanism
US4851998A (en) * 1987-06-03 1989-07-25 I/O Xel, Inc. Method for analyzing performance of computer peripherals
US4885683A (en) * 1985-09-27 1989-12-05 Unisys Corporation Self-testing peripheral-controller system
US5090014A (en) * 1988-03-30 1992-02-18 Digital Equipment Corporation Identifying likely failure points in a digital data processing system
US5121263A (en) * 1989-10-31 1992-06-09 International Business Machines Corporation Method and apparatus for determining the error rate of magnetic recording disk drives having a amplitude sampling data detection
US5157666A (en) * 1990-09-24 1992-10-20 Xerox Corporation Disk timing diagnostic
US5287363A (en) * 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3585599A (en) * 1968-07-09 1971-06-15 Ibm Universal system service adapter
US3704363A (en) * 1971-06-09 1972-11-28 Ibm Statistical and environmental data logging system for data processing storage subsystem
US3787670A (en) * 1971-12-20 1974-01-22 Honeywell Inf Systems Automatic diagnostic system
US4048481A (en) * 1974-12-17 1977-09-13 Honeywell Information Systems Inc. Diagnostic testing apparatus and method
US4213178A (en) * 1978-10-23 1980-07-15 International Business Machines Corporation Input/output command timing mechanism
US4885683A (en) * 1985-09-27 1989-12-05 Unisys Corporation Self-testing peripheral-controller system
US4851998A (en) * 1987-06-03 1989-07-25 I/O Xel, Inc. Method for analyzing performance of computer peripherals
US5090014A (en) * 1988-03-30 1992-02-18 Digital Equipment Corporation Identifying likely failure points in a digital data processing system
US5121263A (en) * 1989-10-31 1992-06-09 International Business Machines Corporation Method and apparatus for determining the error rate of magnetic recording disk drives having a amplitude sampling data detection
US5157666A (en) * 1990-09-24 1992-10-20 Xerox Corporation Disk timing diagnostic
US5287363A (en) * 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures

Cited By (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732223A (en) * 1991-03-11 1998-03-24 Future Domain Corporation, Inc. SCSI host adapter with shared command and data buffer
US7957370B2 (en) 1993-02-01 2011-06-07 Lake Cherokee Hard Drive Technologies, Llc Synchronous read channel
US5758189A (en) * 1994-06-23 1998-05-26 Fujitsu Limited System for changing period to examine external storage unit for storage medium being loaded based on state of use of input device
US5764881A (en) * 1995-03-20 1998-06-09 Fujitsu Limited Read/write apparatus and alternation process method
US6263454B1 (en) 1996-07-23 2001-07-17 Hewlett-Packard Company Storage system
EP0821307A1 (en) * 1996-07-23 1998-01-28 Hewlett-Packard Company Error indication for a storage system with removable media
EP0825537A1 (en) * 1996-07-23 1998-02-25 Hewlett-Packard Company Error indication for a storage system with removable media
EP0821308A1 (en) * 1996-07-23 1998-01-28 Hewlett-Packard Company Error indication for a storage system with removable media
US6058494A (en) * 1996-07-23 2000-05-02 Hewlett-Packard Company Storage system with procedure for monitoring low level status codes, deriving high level status codes based thereon and taking appropriate remedial actions
US6029226A (en) * 1996-09-30 2000-02-22 Lsi Logic Corporation Method and apparatus having automated write data transfer with optional skip by processing two write commands as a single write command
US5987400A (en) * 1997-05-08 1999-11-16 Kabushiki Kaisha Toshiba System for monitoring the throughput performance of a disk storage system
US5983316A (en) * 1997-05-29 1999-11-09 Hewlett-Parkard Company Computing system having a system node that utilizes both a logical volume manager and a resource monitor for managing a storage pool
US5991708A (en) * 1997-07-07 1999-11-23 International Business Machines Corporation Performance monitor and method for performance monitoring within a data processing system
US6163840A (en) * 1997-11-26 2000-12-19 Compaq Computer Corporation Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline
US6237073B1 (en) 1997-11-26 2001-05-22 Compaq Computer Corporation Method for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information
US6237059B1 (en) 1997-11-26 2001-05-22 Compaq Computer Corporation Method for estimating statistics of properties of memory system interactions among contexts in a computer system
US6175814B1 (en) 1997-11-26 2001-01-16 Compaq Computer Corporation Apparatus for determining the instantaneous average number of instructions processed
US6332178B1 (en) 1997-11-26 2001-12-18 Compaq Computer Corporation Method for estimating statistics of properties of memory system transactions
US6374367B1 (en) 1997-11-26 2002-04-16 Compaq Computer Corporation Apparatus and method for monitoring a computer system to guide optimization
US6442585B1 (en) 1997-11-26 2002-08-27 Compaq Computer Corporation Method for scheduling contexts based on statistics of memory system interactions in a computer system
US6549930B1 (en) 1997-11-26 2003-04-15 Compaq Computer Corporation Method for scheduling threads in a multithreaded processor
US6195748B1 (en) 1997-11-26 2001-02-27 Compaq Computer Corporation Apparatus for sampling instruction execution information in a processor pipeline
US6366981B1 (en) * 1997-12-05 2002-04-02 Nec Corporation Disc array apparatus having a presupposed response time and a number of disc units
US6643735B2 (en) * 2001-12-03 2003-11-04 International Business Machines Corporation Integrated RAID system with the capability of selecting between software and hardware RAID
US20040049632A1 (en) * 2002-09-09 2004-03-11 Chang Albert H. Memory controller interface with XOR operations on memory read to accelerate RAID operations
US6918007B2 (en) 2002-09-09 2005-07-12 Hewlett-Packard Development Company, L.P. Memory controller interface with XOR operations on memory read to accelerate RAID operations
US20040225689A1 (en) * 2003-05-08 2004-11-11 International Business Machines Corporation Autonomic logging support
US20080155548A1 (en) * 2003-05-08 2008-06-26 International Business Machines Corporation Autonomic logging support
US20050060477A1 (en) * 2003-08-29 2005-03-17 Wilkins Virgil V. High-speed I/O controller having separate control and data paths
US7421520B2 (en) * 2003-08-29 2008-09-02 Aristos Logic Corporation High-speed I/O controller having separate control and data paths
US20050076260A1 (en) * 2003-10-07 2005-04-07 Ching-Hai Hung Raid consistency initialization method
US10114699B2 (en) * 2003-10-07 2018-10-30 Infortrend Technology, Inc. RAID consistency initialization method
US20060085595A1 (en) * 2004-10-14 2006-04-20 Slater Alastair M Identifying performance affecting causes in a data storage system
US20060200357A1 (en) * 2005-02-23 2006-09-07 International Business Machines (Ibm) Corporation Policy based data shredding for storage controller
US7739462B2 (en) * 2005-02-23 2010-06-15 International Business Machines Corporation Policy based data shredding for storage controller
US7765437B2 (en) * 2005-03-03 2010-07-27 Seagate Technology Llc Failure trend detection and correction in a data storage array
US20080244316A1 (en) * 2005-03-03 2008-10-02 Seagate Technology Llc Failure trend detection and correction in a data storage array
US20060200726A1 (en) * 2005-03-03 2006-09-07 Seagate Technology Llc Failure trend detection and correction in a data storage array
US9274892B2 (en) 2005-06-03 2016-03-01 Rambus Inc. Memory chip with error detection and retry modes of operation
US12026038B2 (en) 2005-06-03 2024-07-02 Rambus Inc. Memory controller with error detection and retry modes of operation
US11775369B2 (en) 2005-06-03 2023-10-03 Rambus Inc. Memory controller with error detection and retry modes of operation
US10621023B2 (en) 2005-06-03 2020-04-14 Rambus Inc. Memory controller with error detection and retry modes of operation
US10095565B2 (en) 2005-06-03 2018-10-09 Rambus Inc. Memory controller with error detection and retry modes of operation
US9665430B2 (en) 2005-06-03 2017-05-30 Rambus Inc. Memory system with error detection and retry modes of operation
US9459960B2 (en) 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US9875151B2 (en) 2006-01-11 2018-01-23 Rambus Inc. Controller that receives a cyclic redundancy check (CRC) code from an electrically erasable programmable memory device
US11340973B2 (en) 2006-01-11 2022-05-24 Rambus Inc. Controller that receives a cyclic redundancy check (CRC) code for both read and write data transmitted via bidirectional data link
US9262269B2 (en) 2006-01-11 2016-02-16 Rambus Inc. System and module comprising an electrically erasable programmable memory chip
US9213591B1 (en) 2006-01-11 2015-12-15 Rambus Inc. Electrically erasable programmable memory device that generates a cyclic redundancy check (CRC) code
US9298543B2 (en) 2006-01-11 2016-03-29 Rambus Inc. Electrically erasable programmable memory device that generates error-detection information
US11669379B2 (en) 2006-01-11 2023-06-06 Rambus Inc. Controller that receives a cyclic redundancy check (CRC) code for both read and write data transmitted via bidirectional data link
US9477547B2 (en) 2006-01-11 2016-10-25 Rambus Inc. Controller device with retransmission upon error
US9262262B2 (en) 2006-01-11 2016-02-16 Rambus Inc. Memory device with retransmission upon error
US10838793B2 (en) 2006-01-11 2020-11-17 Rambus Inc. Memory device with unidirectional error detection code transfer for both read and write data transmitted via bidirectional data link
US10241849B2 (en) 2006-01-11 2019-03-26 Rambus Inc. Controller that receives a cyclic redundancy check (CRC) code for both read and write data transmitted via bidirectional data link
US10180865B2 (en) 2006-01-11 2019-01-15 Rambus Inc. Memory device with unidirectional cyclic redundancy check (CRC) code transfer for both read and write data transmitted via bidirectional data link
US9170894B2 (en) 2006-05-18 2015-10-27 Rambus Inc. Memory error detection
US8707110B1 (en) 2006-05-18 2014-04-22 Rambus Inc. Memory error detection
US20090235113A1 (en) * 2006-05-18 2009-09-17 Rambus Inc. Memory error detection
US10558520B2 (en) 2006-05-18 2020-02-11 Rambus Inc. Memory error detection
US8555116B1 (en) 2006-05-18 2013-10-08 Rambus Inc. Memory error detection
US9870283B2 (en) 2006-05-18 2018-01-16 Rambus Inc. Memory error detection
US11150982B2 (en) 2006-05-18 2021-10-19 Rambus Inc. Memory error detection
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
US11928020B2 (en) 2006-05-18 2024-03-12 Rambus Inc. Memory error detection
US8352805B2 (en) 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US11579965B2 (en) 2006-05-18 2023-02-14 Rambus Inc. Memory error detection
US20130238941A1 (en) * 2010-10-14 2013-09-12 Fujitsu Limited Storage control apparatus, method of setting reference time, and computer-readable storage medium storing reference time setting program
US9152519B2 (en) * 2010-10-14 2015-10-06 Fujitsu Limited Storage control apparatus, method of setting reference time, and computer-readable storage medium storing reference time setting program
US11636915B2 (en) 2018-03-26 2023-04-25 Rambus Inc. Command/address channel error detection
US11361839B2 (en) 2018-03-26 2022-06-14 Rambus Inc. Command/address channel error detection
US12002532B2 (en) 2018-03-26 2024-06-04 Rambus Inc. Command/address channel error detection
US11237893B2 (en) 2019-06-26 2022-02-01 Western Digital Technologies, Inc. Use of error correction-based metric for identifying poorly performing data storage devices

Similar Documents

Publication Publication Date Title
US5450609A (en) Drive array performance monitor
US6467054B1 (en) Self test for storage device
US5923876A (en) Disk fault prediction system
US7359848B1 (en) Tape storage emulator
US5761411A (en) Method for performing disk fault prediction operations
US6799283B1 (en) Disk array device
US7512751B2 (en) Method and apparatus for adjusting timing signal between media controller and storage media
US4367525A (en) CPU Channel monitoring system
CN100430906C (en) Library system, virtual library apparatus, cache restoring method, and computer readable recording medium
US8181161B2 (en) System for automatically collecting trace detail and history data
EP0714063B1 (en) Method for identifying ways to improve performance in computer data storage systems
US7424582B2 (en) Storage system, formatting method and computer program to enable high speed physical formatting
US6047353A (en) Method and apparatus for monitoring of host activities relating to an attached storage device
US6442650B1 (en) Maximizing sequential output in a disk array storage device
US20040225926A1 (en) Configuring memory for a RAID storage system
US20090216977A1 (en) Storage System and Snapshot Data Preparation Method in Storage System
WO1998033113A1 (en) Virtual media library
KR20030040503A (en) Critical event log for a disc drive
JPH0150928B2 (en)
EP2026184A1 (en) Device, method, and program for selecting data storage destination from a plurality of tape recording devices
US8037332B2 (en) Quad-state power-saving virtual storage controller
US5935260A (en) Method and apparatus for providing system level errors in a large disk array storage system
CN113179665A (en) Identifying underperforming data storage devices using error correction based metrics
US7747816B1 (en) Virtual tape stacker
US7325117B2 (en) Storage system and storage control method

Legal Events

Date Code Title Description
STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: COMPAQ INFORMATION TECHNOLOGIES GROUP, L.P., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:COMPAQ COMPUTER CORPORATION;REEL/FRAME:012418/0222

Effective date: 20010620

FPAY Fee payment

Year of fee payment: 8

REMI Maintenance fee reminder mailed
AS Assignment

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS

Free format text: CHANGE OF NAME;ASSIGNOR:COMPAQ INFORMATION TECHNOLOGIES GROUP, LP;REEL/FRAME:015000/0305

Effective date: 20021001

FPAY Fee payment

Year of fee payment: 12