Browse Prior Art Database

Software Solution for Coordinating a Small Computer System Interface with Multiple Drives

IP.com Disclosure Number: IPCOM000115820D
Original Publication Date: 1995-Jun-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 2 page(s) / 116K

Publishing Venue

IBM

Related People

Morales, C: AUTHOR

Abstract

The Small Computer System Interface (SCSI) is a widely accepted standard, which while providing advanced capabilities for the management of multiple hosts and peripherals, presents a number of challenges involving the interface to a single CPU multiple drive array. The array being considered in this case is a dual Head Disk Assembly (HDA) stripped data configuration, permitting the simultaneous execution of two commands, or one command spanning both HDAs. The SCSI bus allows only one data transfer to occur at a time, and although there are mechanisms for sending data out of order, these are typically not implemented on most popular host adapters, requiring data to be in order. Therefore, a means must be provided for the coordination of SCSI data and status transfers, commands and HDAs.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 50% of the total text.

Software Solution for Coordinating a Small Computer System Interface
with Multiple Drives

      The Small Computer System Interface (SCSI) is a widely accepted
standard, which while providing advanced capabilities for the
management of multiple hosts and peripherals, presents a number of
challenges involving the interface to a single CPU multiple drive
array.  The array being considered in this case is a dual Head Disk
Assembly (HDA) stripped data configuration, permitting the
simultaneous execution of two commands, or one command spanning both
HDAs.  The SCSI bus allows only one data transfer to occur at a time,
and although there are mechanisms for sending data out of order,
these are typically not implemented on most popular host adapters,
requiring data to be in order.  Therefore, a means must be provided
for
the coordination of SCSI data and status transfers, commands and
HDAs.

      It is necessary to provide a mechanism which reconciles the
SCSI bus with the internal array structure, due to the fact that a
SCSI host will perceive this array as a single drive, while
internally the command will be structured into two independent tasks,
sharing resources such as the CPU and the SCSI interface.  Data is
shared across both HDAs, interleaved such that it crosses over from
one HDA to the next each time it reaches the interleave boundary.
Thus what the  SCSI bus transfers as a continuous data stream must
somehow be broken into blocks the size of an interleave and
transferred to the HDA on which they belong.  Status can only be sent
once for each command, and only when both HDAs have completed their
tasks.  This must all be handled in an efficient manner, avoiding
time consuming disconnects.  The algorithm described in this paper
solves the above problems in an integrated and compact fashion.

      A mechanism, called the Reconnection-Queue, was established to
coordinate data transfers between the SCSI bus and array.  Its
function is to guarantee that all drive initiated SCSI actions,
including data transfers and status reporting, confirm to the SCSI
specification and meet the requirement of allowing each HDA to act
independently.  All requests affecting the SCSI bus go through the
reconnection logic, which will determine, based on a number of
criteria, whether a request can be executed.  In the case a request
is turned down it will be put in a queue, to be dequeued when said
conditions are met, or deleted if certain error conditions occur.

      The interleaved nature of data is central to this approach.  An
interleave is never smaller than one HDA data block and can be as
large as an HDA's full size.  A data transfer can start at any
position in an interleave and extend for any period.  Any transfer
length over 1 block can potentially cross an interleave boundary,
requiring data sent to both HDAs.  Data transfers are originated by
an HDAs task.  The reconnection queue determines whether a request
can be imm...