Browse Prior Art Database

Apparatus and Method for Fast SCSI Reselection Nexus

IP.com Disclosure Number: IPCOM000011177D
Original Publication Date: 2003-Feb-12
Included in the Prior Art Database: 2003-Feb-12
Document File: 4 page(s) / 79K

Publishing Venue

IBM

Abstract

The time required to establish a SCSI Nexus on a reselection must be held to a minimum in order to take full advantage of the performance potential offered by packetized SCSI.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 33% of the total text.

Page 1 of 4

Apparatus and Method for Fast SCSI Reselection Nexus

  The time required to establish a SCSI Nexus on a reselection must be held to a minimum in order to take full advantage of the performance potential offered by packetized SCSI.

  An SCSI Initiator must sort through a path table to find an ID, LUN, and Queue Tag match with the reselecting SCSI Nexus. In addition to the SCSI Nexus information, each entry in the table contains pointers, byte counters, status and other setup information unique to the particular SCSI Nexus or path. The table information maintained for each path is collectively called the path I/O control block or IOCB.

  The IOCB table must be accessed by several hardware entities in addition to the SCSI Nexus hardware. New paths must be setup, completed paths interrogated for status, and background path timers must be updated. The SCSI hardware must therefore win arbitration to gain access to the IOCB table. When a reselection occurs a previously active path that has not yet been transferred from the working registers to the IOCB table is first written back to its respective IOCB table entry. The new path IOCB is found in the path table and loaded to the working registers so processing for this SCSI Nexus can continue.

  In Packetized SCSI the LUN size has increased from less than 1 byte to 8 bytes and the Queue Tag has gone from 1 to 2 bytes. The number of paths required has increased dramatically at the same time. One traditional approach was to store the nexus information at the first address of each entry in the IOCB table. During reselection the first address of each IOCB table entry was read in turn and compared to the nexus information from the SCSI bus until a match was made. This worked well with up to 32 paths and smaller LUNs & Queue Tags. With more nexus information per path and 128 or more paths, the added SCSI bus overhead of such a search runs counter to the lower overhead of packetized SCSI.

  The problem is to find the path in the IOCB table that matches the reselecting SCSI Nexus, quickly and efficiently. Disclosed is a method to allow a fast SCSI Nexus on a reselection.

    A four byte key is generated from the SCSI nexus information which consists of IDs, LUN and Queue Tag. The high byte of this key is used to address a table (the Primary Lookup Table) which stores the remainder of the key and the path number. This is done each time the SCSI Initiator starts a path. The entire key is stored in a second table (the Secondary Lookup Table) using the path number of the starting path as the address. When a reselection occurs, the nexus information coming in from the SCSI Target is used to generate a key in the same manner as it was done when the path was started. The high byte of the key forms the address to read the Primary Lookup Table. The remainder of the key is checked against the key field at this address and if it matches, the path number field is used to access the IOCB table and the SCSI nexus has been ma...