SAT TEST UNIT READY command translation

Sheffield, Robert L robert.l.sheffield at intel.com
Thu Aug 18 10:07:33 PDT 2005


* From the T10 Reflector (t10 at t10.org), posted by:
* "Sheffield, Robert L" <robert.l.sheffield at intel.com>
*
Mark,

I believe SBC-2 states that the logical unit shall enter the STOPPED
state after processing a START STOP UNIT with START=0, and I believe
that is often (normally) the state a drive is in immediately after
power-on.

What makes this different from the ATA "Standby" state is the way the
device responds to a media access command.

When a SCSI drive is in the STOPPED state, it will terminate the command
with CHECK CONDITION status with a sense key of NOT READY and the
additional sense code set to LOGICAL UNIT NOT READY, INITIALIZING
COMMAND REQUIRED.

When an ATA drive is in the STANDBY state and it receives a media access
command, it will auto-spinup and execute the command (taking longer than
usual).

For SAT, I'm wondering whether it is appropriate to equate the ATA
STANDBY state to the SCSI STOPPED state. If we do, there are two options
for handling receipt of a media access command while the SATL/ATA device
is in the STOPPED/STANDBY state:
A - the SATL "remembers" that the drive is supposed to be in the STOPPED
state and returns CHECK CONDITION status without accessing the drive, or
B - the SATL goes ahead and issues a media access command to the drive
which causes it to spin-up (enter the ACTIVE state) and execute the
command.

Option (A) could be considered a serious burden for a SATL that doesn't
want to maintain persistent data independent of what can be stored on
the medium.
Option (B) violates SBC-2 (maybe that's OK as long as SAT documents it
well?).

The only other option I can think of is to reject any command that

Bob

-----Original Message-----
From: Evans, Mark [mailto:Mark_Evans at maxtor.com] 
Sent: Thursday, August 18, 2005 8:10 AM
To: dougg at torque.net; t10 at t10.org
Cc: Sheffield, Robert L
Subject: RE: SAT TEST UNIT READY command translation

Hello,

I'm not sure what is trying to be solved here.  First off, though the
IDLE and STANDBY states are described in SPC, SBC, and SAS (the current
descriptions are based on proposals from me), no SCSI applications of
which I am aware use these states or their corresponding timers.  This
is reflected in the fact that most (if not all) SCSI hard drives do not
implement these states or timers.  I would be happy to make these states
obsolete the next time I write a proposal to update the relevant clauses
in the above standards.  Removing these states would muchly simplify the
state diagrams and descriptions.

With these facts in mind, I mapped only the START bit when I made my
proposal for SAT, as this is what SCSI application DO use for target
power management.  The equivalent ATA state to START = 0 is initiated by
a STANDBY command with a value of zero in Sector Count (i.e., causing
the device to transition to the ATA STANDBY state and disabling the
timer).

The NOTIFY (ENABLE SPINUP) primitive is outside the scope of the SAT
discussion.  Exactly how this primitive is generated inside a box is
magic (aka., "vendor specific").  Quoting SAS 1.1, "...the selection of
when and how often to transmit NOTIFY (ENABLE SPINUP) is outside the
scope of this standard."  How a SATL deals with the primitive is also
magic and outside the scope of the SAT standard.

So, what is the problem?

Regards,

Mark Evans
Maxtor Corporation
500 McCarthy Boulevard
Milpitas, CA  95035

office phone:  408-894-5310
email address:  mark_evans at maxtor.com

-----Original Message-----
From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf Of Douglas
Gilbert
Sent: Thursday, August 18, 2005 6:33 AM
To: t10 at t10.org
Cc: robert.l.sheffield at intel.com
Subject: RE: SAT TEST UNIT READY command translation

* From the T10 Reflector (t10 at t10.org), posted by:
* Douglas Gilbert <dougg at torque.net>
*
"Sheffield, Robert L" <robert.l.sheffield at intel.com> wrote:

> This has the result that a SCSI logical unit represented by the SATL 
> will never be in the STOPPED state. So, even though the SATL processed

> a START STOP UNIT command with START=0, the device as perceived by the

> SCSI application client will be in the SCSI STANDBY state. The 
> response to TEST UNIT READY (assuming no
> errors) should be GOOD status.

That would be consistent.
I have made a small web page to summarize power conditions
(states) across several (draft) standards:
http://www.torque.net/sg/power.html

In the context of SAS there is another power condition (actually
two) to consider: ACTIVE_WAIT. For a SAS disk this is like the STOPPED
state. Media access commands are bounced with NOT READY:
LOGICAL UNIT NOT READY, NOTIFY (ENABLE SPINUP) REQUIRED. One (or more)
link layer NOTIFY (ENABLE SPINUP) primitives are required (from an
initiator or an expander) to transition the SAS disk to ACTIVE power
condition. A SAS transport can also hold a SATA disk in a state similar
to ACTIVE_WAIT. So if there is a SAT layer in a SAS enclosure/expander
how will this new state be reported and transitioned?

> Question: does this cause problems for any SCSI applications
> - that a SAT logical unit will never go into the STOPPED state?

I don't think so.

Doug Gilbert
*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org
*
* 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