Support for Large Addresses in SSC

Paul_A_Suhler at notes.seagate.com Paul_A_Suhler at notes.seagate.com
Tue Feb 1 18:01:10 PST 2000


* From the T10 Reflector (t10 at t10.org), posted by:
* Paul_A_Suhler at notes.seagate.com
*
After asking on the T10 reflector for people's thoughts on how to support
logical block addresses greater than 2^32 in SSC, the joint working group
assigned me an action item to propose some answers.

Yet another reason to go to Australia at every opportunity.

To recap the original question, first-generation LTO drives have cartridge
capacities of 200 GB, and the LTO roadmap has 1.6 TB in generation four.  Even
with only 200 GB, a tape with small block sizes could hold more blocks than the
existing LOCATE command can address.  A 1.6 TB medium would max out the logical
block address with blocks of less than 400 bytes.

The working group's guidance was a ranking of general solutions by desirability:

1.  New 16-byte commands
2.  New service actions under the variable length CDB
3.  New 12-byte commands
4.  A new bit in the current commands

I will send 00-135r0 to the T10 reflector next week.  In this message, though,
I'd like to suggest some ideas and see what you think.

For the most part, there are two parameters that may have to change, logical
block addresses and transfer lengths.  The need to have LBAs greater than 2^32
can be solved by using going to eight-byte fields.  Transfer lengths can go to
four bytes.  (This sizing is in keeping with both Gerry Houlder's and George
Penokie's proposals to the SCSI protocol working group.  George had proposed new
16-byte commands (T10/99-259r2).  Gerry had proposed new service actions in the
variable length CDB (T10/00-125r0) and his proposal was adopted for SBC-2.)

Eight-byte LBAs would affect the following SSC commands:

   LOCATE
   READ POSITION, if a new "short" data form is desired to give both First and
   Last Block Location.  Otherwise reject CDBs with the LONG bit = 0.
   SPACE

Four-byte transfer lengths would affect the following SSC commands:

   READ
   READ REVERSE
   RECOVER BUFFERED DATA
   VERIFY
   WRITE
   WRITE FILEMARKS

Comments and questions:

1.  Sixteen-byte CDBs have the problem of not allowing an eight-byte field
that's aligned on an eight-byte boundary, since the CONTROL field takes up the
last byte.  However, the model format for 16-byte CDBs (SPC-2, Table 4) violates
this, so I guess that it's okay.
2.  How many opcodes are left for 16-byte CDBs?
3.  There are SCSI target controllers that can't handle CDBs longer than 16
bytes.
4.  How soon will we need to transfer more than 16 MBytes in one SSC command?
(Some FC RAID array users wanted 4 MB in one command two years ago.)
5.  Is it acceptable to reject READ POSITION if LONG = 0?
6.  I'm still trying to get capacity growth predictions and evaluate the field
widths in the density support data block descriptor.
7.  I've chosen to ignore COMPARE, COPY, and COPY AND VERIFY, even though SSC
lists them.

Thanks for your advice.

Paul


*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org




More information about the T10 mailing list