Hiromichi-san,

I'll try to answer your questions one at a time.

If CCTL is zero use CONFIGURE STREAM setting
specified by Stream ID including CCTL and AU, otherwise use CCTL in the command field.  Right?
Yes, CONFIGURE STREAM is for setting default CCTL's for a StreamID, but can be overridden
in each streaming command.

Does the spec allow issuing multiple commands to satisfy AU? Or AU always have to match sector count register?
 The spec does allow issuing of multiple commands to satisfy AU, so no the AU does not have to
match the sector count register. The AU is a hint to the drive so that he can do better caching. For example,
if a drive knows that it is halfway through an AU, it could reasonably expect to recieve a request in the near future for
the rest of that AU. Your example below is such a situation.

I think the splitting of an AU into multiple requests results from a legacy issue. Before 48 bit addressing the
sector count of a request was limited to 256, or in bytes 512 * 256 = 128KB. This was too small for AV
applications to use the HDD efficiently. In AV applications requests of >=512KB are common, so I assume
that it was decided that the AU's could consist of multiple individual requests. Of course, there could also
be legacy software that works in smaller requests sizes.

For example, if AU is 64 sectors, is following command sequence okay thing to do?
 
READ STREAM 16 sectors, start timer  when command register is written
READ STREAM 16 sectors, timer continue
READ STREAM 16 sectors, timer continue
READ STREAM 16 sectors, stop timer when INTRQ for command completion occur

No, the CCTL is a per request timeout, not a per AU timeout. However, in your example the drive
should read ahead and cache at least up to the AU after the first 16 sector request. For much larger requests
and limited cache sizes the drive will have to make decisions, this is why AU is only a hint to the drive.
 
Another thing is if host breaks promise and issue READ/WRITE STREAM command with sector count or LBA
not matching AU, what is the device behavior should be?  Do you just have to restart the timer?

Yes restart the time, as I said the CCTL is per request not per AU.

Regards,

Stephen.
--
Dr. Stephen Cumpson, Senior Scientist,
Storage Systems & Applications, Building  WY 1 45, (WY12),
Philips Research Labs., Prof. Holstlaan 4, 5656 AA Eindhoven, The Netherlands
Tel.: +31 40 274 2762  Fax: +31 40 274 4648
Email: mailto:[EMAIL PROTECTED]
Web: http://www.research.philips.com/








"Hiromichi Oribe" <[EMAIL PROTECTED]>

Sent by:
[EMAIL PROTECTED]

13-08-2003 20:26

       
        To:        Stephen Cumpson/EHV/RESEARCH/[EMAIL PROTECTED]
"T13" <[EMAIL PROTECTED]>

        cc:        
        Subject:        RE: [t13] ATA/ATAPI-7 What is Allocation Unit(AU)?

        Classification:        




Stephen-san,
 
Thank you very much for your reply and comments.
 
>Is this just "useful information" for host to know?
>The "Allocation Unit" is information passed FROM the host to the DRIVE, and not

>from the drive to the host, as you suggest.

I'm sorry for the confusion....it should have been "device" not "host".
 
>It is only relevant for drives supporting the Streaming Data Transfer Feature Set.
>
>
The Streaming Data Transfer Feature Set allows for two methods of operation:
>        Smart Host & Drive with Command Completion Time Limit

>                Configure Stream and Allocation Unit irrelevant

>        Dumb Host & Drive with stremaing/scheduling capability

>                Configure Stream and Allocation Unit necessary

Thank you for clarification.  It makes much more sense to me now.  If CCTL is zero use CONFIGURE STREAM setting
specified by Stream ID including CCTL and AU, otherwise use CCTL in the command field.  Right?
 
However, I'm still confused about usage of "AU"....
4.17.1 says "each command" shall be completed within the time specified in the CONFIGURE STREAM command.
But 3.1.11 says AU may be accessed with "one or more requests".  I'm not sure how and when to measure times
when AU is being used.
 
Does the spec allow issuing multiple commands to satisfy AU? Or AU always have to match sector count register?
 
For example, if AU is 64 sectors, is following command sequence okay thing to do?
 
READ STREAM 16 sectors, start timer  when command register is written
READ STREAM 16 sectors, timer continue
READ STREAM 16 sectors, timer continue
READ STREAM 16 sectors, stop timer when INTRQ for command completion occur
 
Another thing is if host breaks promise and issue READ/WRITE STREAM command with sector count or LBA
not matching AU, what is the device behavior should be?  Do you just have to restart the timer?
 
>4.17.1 Streaming commands
>Each command shall be completed within the time specified in the CONFIGURE STREAM
>command
or in the streaming command itself in order to ensure the stream requirements of the AV type
>application.

 
>3.1.11 AU Allocation Unit: The allocation unit is the minimum number of logically contiguous sectors on the
>media as used in the Streaming feature set. An Allocation Unit may be accessed with one or more
>requests.

 
Best regards,
 
Hiromichi Oribe
Firmware Engineer
Iomega Corporation
1821 West Iomega Way, Roy, Utah 84067
tel 1-801-332-5360
fax 1-801-332-4667
-----Original Message-----
From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent:
Wednesday, August 13, 2003 2:37 AM
To:
T13
Subject:
Re: [t13] ATA/ATAPI-7 What is Allocation Unit(AU)?


Dear Oribe-san,


The "Allocation Unit" is information passed FROM the host to the DRIVE, and not

from the drive to the host, as you suggest.


It is meant for a 'smart' drive that handles streaming by itself. In such a case the 'smart'

drive has to know something about how data is to be accessed by the host, specifically

in what size units it is accessed.


Relevant documents are:

d99135r7.doc/pdf        A/V Model and Definitions

d99128r10.pdf                Proposal for Streaming Data Transfer Feature Set


It is only relevant for drives supporting the Streaming Data Transfer Feature Set.


The Streaming Data Transfer Feature Set allows for two methods of operation:

       Smart Host & Drive with Command Completion Time Limit

               Configure Stream and Allocation Unit irrelevant

       Dumb Host & Drive with stremaing/scheduling capability

               Configure Stream and Allocation Unit necessary



Kind regards,


Stephen.
--
Dr. Stephen Cumpson, Senior Scientist,
Storage Systems & Applications, Building  WY 1 45, (WY12),
Philips Research Labs., Prof. Holstlaan 4, 5656 AA Eindhoven, The Netherlands
Tel.: +31 40 274 2762  Fax: +31 40 274 4648
Email: mailto:[EMAIL PROTECTED]
Web: http://www.research.philips.com/







"Hiromichi Oribe" <[EMAIL PROTECTED]>

Sent by:
[EMAIL PROTECTED]

12-08-2003 19:09

       
       To:        "T13" <[EMAIL PROTECTED]>

       cc:        (bcc: Stephen Cumpson/EHV/RESEARCH/PHILIPS)

       Subject:        [t13] ATA/ATAPI-7 What is Allocation Unit(AU)?

        Classification:        




Does anyone know how to use "Allocation Unit"?  I can't find anywhere in the ATA/ATAPI-7 document describing how to use thisc

 
Is this just "useful information" for host to know?

 
Does AU have something to do with Command Completion Time Limit (CCTL) for streaming?

 
Followings are the only places I can find through out the document.

 
 
3.1.11 AU Allocation Unit:
The allocation unit is the minimum number of logically contiguous sectors on the

media as used in the Streaming feature set. An Allocation Unit may be accessed with one or more

requests.

 
4.17.1.2 Flush to Disk bit

The Flush to Disk bit in the WRITE STREAM command specifies that all data for the specified stream shall be

flushed to the media before posting command completion. If a host requests flushes at times other than the end

of each Allocation Unit, streaming performance may be degraded. The SET FEATURES command to

enable/disable caching shall not affect caching for streaming commands.

 
 
6.8 CONFIGURE STREAM

Sector Count Current -

The size of an Allocation Unit in sectors (bits 7:0).

Sector Count Previous -

The size of an Allocation Unit in sectors (bits 15:8).

 
Hiromichi Oribe

[EMAIL PROTECTED]
Iomega Corporation

1821 West Iomega Way, Roy, Utah 84067

tel 801-332-5360

fax 801-332-4667

 

Reply via email to