This message is from the T13 list server.

On Mon, 17 Dec 2001 15:03:58 -0700, Pat LaVarre wrote:
>My original source who told me of hard drives that do send more
>bytes than expected isn't clear on whether the host decided the
>bytes in were unexpected because a faster UDma burst rate allows
>more or because, say, the device clocked more than 4 * x200 =
>x800 bytes in for a 4 block read.  My original source says the
>latter, but talk here is leading me to disbelieve.

An ATA device never sends more data than the host requested.  If
the host asked for 4 sectors (blocks) and there are no errors the
device will send exactly 4*512 bytes, no less, no more.  That is
true for PIO, MW DMA and Ultra DMA.  There are no unexpected
bytes, there are no extra bytes.

The same should be true for all ATAPI devices with a fixed block size
and that would include CD devices that have a fixed block size but
that block size is not always 2048, see the Read CD command.

>In Pio, the next INTRQ would arrive with BSY:DRQ = 0:0 rather
>than 0:1.  The C/D I/O would be x03 StatusIn, not x00 DataOut.

Yes.

>In Pio, merely by observing the bus trace from after the command
>block til before status, all could agree how many bytes of data
>were exchanged.

Yes. Same for DMA.

>I gather to stop the host after an arbitrarily chosen two byte
>"word", there the device can deassert DMARQ, soon enough after
>the last DIOR/DIOW that the host cooperatively avoids sending
>another DIOR/DIOW clock.

Only a broken/bad host would try to send more data for a write
command than what command tells the device to expect.  But if the
host did this then the device would ignore the extra data.  In MW
DMA the device's hardware might not even see the host doing the
extra IOW cycle.  In Ultra DMA the protocol says the device shall
ignore the data except in the CRC.


***  Hale Landis  *** [EMAIL PROTECTED] ***
*** Niwot, CO USA ***   www.ata-atapi.com   ***


Subscribe/Unsubscribe instructions can be found at www.t13.org.

Reply via email to