sata raid & write cache state

Kenneth D. Merry ken at freebsd.org
Tue Oct 12 14:03:50 PDT 2004


On Tue, Oct 12, 2004 at 11:33:15 -0400, David Gilbert wrote:
> >>>>> "Kenneth" == Kenneth D Merry <ken at freebsd.org> writes:
> 
> Kenneth> See my previous mail.  SATA disks differ in two ways:
> 
> Kenneth> 1.  Many don't support tagged queueing.
> 
> I'd like to see more information on this.  I was under the impression
> that SATA required some form of command queueing in all drives.
> 
> Kenneth> 2.  If the SATA disk does support tagged queueing, there is
> Kenneth> still a fundamental problem with the queueing model in SATA
> Kenneth> (and probably ATA, not sure).  According to a coworker of
> Kenneth> mine (hardware engineer) who is a SATA expert, the status
> Kenneth> phase on the bus is the same phase as the data phase.  So you
> Kenneth> basically have to send all the data to the drive on a write
> Kenneth> and the drive has to send the status back before the drive
> Kenneth> can accept any more data for another queued write command.
> Kenneth> So that limits you, effectively, to writing data for one
> Kenneth> command at a time.
> 
> It would appear that the SATA folks are introducing 'NCQ' (Native
> Command Queueing) ... which does supply out-of-order returns among
> other things.

>From talking to my co-worker again, it sounds like the SATA II spec does
allow breaking up the data and status phases for a command.  (i.e. out of
order command completion)

The key is that even if the drive supports it, the controller has to enable
that feature on the drive.

So the bottom line is that with a drive and a controller that support SATA
II NCQ and out of order completion, you could disable write caching on the
drive and still (in theory) get reasonable performance out of it.

Ken
-- 
Kenneth Merry
ken at FreeBSD.ORG


More information about the freebsd-hardware mailing list