Browse Prior Art Database

Logical Block Pipelining Disclosure Number: IPCOM000116822D
Original Publication Date: 1995-Nov-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 2 page(s) / 82K

Publishing Venue


Related People

Basham, RB: AUTHOR [+1]


A method to pipeline read and write logical blocks that reduces the time between blocks when a fixed block Read or Write command is used. The method involves prequeueing the blocks.

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

Logical Block Pipelining

      A method to pipeline read and write logical blocks that reduces
the time between blocks when a fixed block Read or Write command is
used.  The method involves prequeueing the blocks.

      To get around the problem of allocating resources between each
block, a pipeline that preallocates all resources for the transfer
and places them in a waiting queue is used.

      This pipeline is developed using an object-oriented approach.
The objects involved in the pipeline are described below:
  o  Command Object
     A Write or Read object is used to control the execution of
      a Write or Read command.
  o  LUN Logical Block(LLB)
     A LUN Logical Block is a representation of a logical block
      in a command.  It contains all the data associated with a block
      such as logical block number, logical block size, and location
      the buffer.
  o  Target LUN Logical Element(Target LLE)
     If the host logical block is too large to conveniently
      handle, it is broken into segment.  Each segment of a logical
      block is represented by a Target LUN Logical Element.  Each
      Target LLE must contain the information associated with that
      segment such as segment length, start address in the SCSI
      last segment, and CRC checking.  This information is used by
      SCSI Target when it transfers the data.

      When a Write command with multi-block is received, a Write
object is created.  It fetches the first block of the command and
gives it to the SCSI Target to transfer while allocating resources
for the next block.  Upon the completion of the first logical block,
the SCSI Target continues transfer the next block without waiting
between block.  This process includes these steps:
  1.  A LUN_Logical_Block(LLB) is created, initialized, and added to
       the LLB queue by the Write command if the queue size is not
       the limit.
  2.  The Write object also requests space in the SCSI buffer based
       the max segment size.
  3.  When the space is available, a Target_LUN_Logical_Element(TLLE)
       is created and added to the TLLE queue.  This process is
       until all the necessary TLLEs are created.
  4.  The Write object needs to send an event to the SCSI Target
       informing it that space is availble for storing the data only