Browse Prior Art Database

Method for Improving Interrupt Latency in a SCSI Advanced Bios Environment

IP.com Disclosure Number: IPCOM000107365D
Original Publication Date: 1992-Feb-01
Included in the Prior Art Database: 2005-Mar-21
Document File: 2 page(s) / 84K

Publishing Venue

IBM

Related People

Geisler, DR: AUTHOR [+2]

Abstract

The small computer system interface (SCSI) advanced basic input output system (ABIOS) supports up to 60 outstanding commands to the SCSI hardware (assuming four adapters and fifteen devices attached to each adapter). SCSI ABIOS builds a logical ID for each SCSI device in the system. The SCSI hardware interrupts on only one hardware interrupt level. The ABIOS architecture requires that when an interrupt occurs, each logical ID on the interrupt level waiting for an interrupt must be processed until the first logical ID with an interrupt is completely processed (i.e., services the interrupting device).

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

Method for Improving Interrupt Latency in a SCSI Advanced Bios Environment

       The small computer system interface (SCSI) advanced basic
input output system (ABIOS) supports up to 60 outstanding commands to
the SCSI hardware (assuming four adapters and fifteen devices
attached to each adapter).  SCSI ABIOS builds a logical ID for each
SCSI device in the system.  The SCSI hardware interrupts on only one
hardware interrupt level.  The ABIOS architecture requires that when
an interrupt occurs, each logical ID on the interrupt level waiting
for an interrupt must be processed until the first logical ID with an
interrupt is completely processed (i.e., services the interrupting
device).

      Typically, when two or more commands are issued to the SCSI
adapter(s) in an overlapped fashion, the order of interrupts
indicating command completion is nondeterminable. That is, suppose
there are three processes, A, B and C, that issue requests in that
order to the SCSI adapter through SCSI ABIOS.  There is no guarantee
that the interrupts will be posted to the host in the same order, nor
is it necessarily reliable to predict an order.  It may be any one of
the following:
1.   A, B, C
2.   A, C, B
3.   B, A, C
4.   B, C, A
5.   C, A, B
6.   C, B, A

      At interrupt time each one of these processes must be queried
to determine which one of the processes is responsible for the
interrupt.  This is done until the correct process is found.  If the
first order was used and C was the interrupting process, it would
have taken three invocations of the SCSI ABIOS interrupt routine to
determine the process owning the interrupt.  If these processes are
initiated by separate device drivers, then the amount of calls is
increased by one call per each additional device driver.

      One, two and even three concurrent processes are trivial, and
the average number of ABIOS calls to determine the interrupting
process is two.  However, when the number of concurrent processes is
increased to four, five, six, up to a theoretical maximum number of
60, it is seen that a great deal of CPU time is was...