System and method with guaranteed maximum command response time

Electrical computers and digital data processing systems: input/ – Input/output data processing – Peripheral monitoring

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C710S015000, C711S003000

Reexamination Certificate

active

06493772

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates generally to device controllers. More particularly, the invention relates to a system, apparatus, and method for a device controller in a data storage system to guarantee that a status corresponding to a command initiated by a host system is sent to the host system within a maximum command response time.
BACKGROUND
Referring to
FIG. 1
, there is shown Small Computer Systems Interface (SCSI) I/O subsystem
10
coupled to a host system
20
by host peripheral bus
30
. SCSI (including SCSI-
1
, SCSI-
2
, and SCSI-
3
) is an ANSI standard device-independent input/output (“I/O”) interface. In SCSI I/O subsystem
10
, SCSI bus
50
connects device controller
40
to one or more disk storage devices in disk drive array
60
, including, for example, disk drive
60
, disk drive
70
, disk drive
80
, disk drive
90
, and disk drive
100
. The operation of SCSI buses is known. Disk drives may be arranged into one or more well known Redundant Array of Independent Disks (RAID) storage subsystems.
For purposes of this disclosure a “disk drive” is any non-volatile, randomly accessible, rewritable SCSI mass storage device which has the ability of detecting its own storage failures. It includes both rotating magnetic and optical disks and solid-state disks, for nonvolatile electronic storage elements, for example, PROMS, EPROMs, and EEPROMS. SCSI refers to the command and communication protocol, which may for example be implemented on wire (copper) or fibre channel physical links or loops.
Device controller
40
(hereinafter often referred to as “controller
40
”) is connected to host system
20
, for example, a general-purpose computer, over host peripheral bus
30
. Controller
40
controls I/O communications between host system
20
and disk drive array
60
. Host System
20
may communicate with a plurality of controllers
40
, and each controller may communicate with a plurality of disk drives or disk drive arrays
60
. For example, controller
40
distributes SCSI commands initiated from host system
20
to at least a subset of the disk storage devices in disk drive array
60
. The subset may be one, two, more than two, or all of the disk drives in disk drive array
60
. Such SCSI commands include, for example, write data requests and read data requests. SCSI commands are well known in the art and a more detailed description of SCSI commands can be found in “The SCSI Bus & IDE Interface,” Addison Wesley, second edition, Chap. 11, 1998, which is hereby incorporated by reference.
Host peripheral bus
30
can be any type of peripheral bus, including but not limited to a Peripheral Component Interconnect (PCI) bus, Industry Standard Architecture (ISA) bus, Extended Industry Standard Architecture (EISA) bus, Micro Channel Architecture, SCSI bus, Fibre Channel loop, Universal Serial Bus (USB), and the like.
According to SCSI standards, after a SCSI device, for example, disk drive
70
, disk drive
80
, disk drive
90
, and/or disk drive
100
, receives a SCSI command from a device controller, the SCSI device will execute the SCSI command and return SCSI command completion information to the device controller. Such completion information includes a corresponding SCSI status code that reports whether execution of the command was successful, whether an error occurred, or other information, such as for example busy status. In particular, standard SCSI status codes include the following statuses: good status, check condition status, condition met status, busy status, reservation conflict status, command terminated status, and the like. The meaning of these statuses can be found in Freidhelm and Schmidt, “The SCSI Bus & IDE Interface,” Table 11.6, pg. 114, 1998, which is hereby incorporated by reference.
For each SCSI command that controller
40
receives from host system
20
, controller
40
creates and executes a corresponding “input/output process” (“I/O process”) in its memory (not shown). Conventional implementations of such I/O processes are known. However, for purposes of explanation, an I/O process performs a series of steps to either store or retrieve information from one or more physical SCSI devices, such as the disk drives described above, that are addressable by a device controller. The progress of an I/O process typically begins when it is created by a device controller in response to sending a SCSI command to one or more SCSI devices, and typically ends after SCSI command completion information has been returned to the host system. SCSI command completion information is typically returned to the system after controller
40
receives completion information from each SCSI device that is executing the SCSI command that the particular I/O process managing.
Referring to
FIG. 2
, there is shown an example of conventional I/O process data structure
200
defined in memory (not shown) in controller
40
. For each I/O process that controller
40
creates, controller
40
also creates a corresponding conventional I/O process data structure
200
. I/O process data structure
200
contains all required information necessary for controller
40
to track the progress of the corresponding I/O process. We will now discuss the conventional elements of I/O process data structure
200
.
Command descriptor block (“CDB”)
210
is a standard SCSI command descriptor block that contains a SCSI command proper and any parameters that are associated with the SCSI command. According to SCSI standards, host transfer block
220
contains information used by controller
40
to facilitate data transfers and/or status code transfers to and from a SCSI command initiating host system. Host ID
221
is typically a SCSI ID identifying the initiating host system. SCSI IDs are known. However, for purposes of explanation, a unique SCSI ID identifies each SCSI device on a SCSI bus, including the host server itself. SCSI IDs are generally set manually by changing a switch, or ajumper on each SCSI device. Some devices may be capable of automatically detecting and assigning an available SCSI device ID.
Ending status
222
is used by controller
40
to store a final status result of the execution of the SCSI command that is referenced in command descriptor block
210
. Ending status
222
is sent by controller
40
to host server
20
upon completion of the SCSI command. Ending status
222
can assume similar values to those assumed by SCSI status codes, as discussed in great detail above.
Disk transfer block
230
is used by controller
40
to store information corresponding to data transfers, if any, with SCSI disk drives. Such information includes, for example disk ID
231
, for identifying the SCSI ID of the SCSI disk drive that is transferring data.
Next, disk command descriptor block (CDB)
233
is used by controller
40
to store the SCSI command proper (including any SCSI command parameters). The contents of CDB
233
are not necessarily the same as the contents of CDB
210
, but are related to the particular RAID algorithm that is being used to distribute data across the disk storage devices. Finally, disk status
232
is used by controller
40
to store a SCSI status code returned by the SCSI device that is executing the SCSI command proper. Because a device controller may use more than one SCSI device to execute a SCSI command, disk transfer block
230
is commonly implemented as a linked list data structure. Linked list data structures and the operation of linked list data structures are known, and for that reason are not described here in detail.
Data cache block
240
is used by controller
40
to store information to manage a local data cache to facilitate data transfers between a host system and one or more SCSI disk drives. Cache transfer operations are known and will not be described in greater detail here.
To assist in tracking the progress of a corresponding SCSI command, each I/O process typically uses a respective separate I/O process data structure
200
. Such progress begins from the time that the SCSI command is distributed to one or more disk st

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

System and method with guaranteed maximum command response time does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method with guaranteed maximum command response time, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method with guaranteed maximum command response time will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2968595

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.