This message is from the T13 list server.

One thing to remember about read look ahead
is that a new command needing a seek stops 
the read ahead. No delay is imposed on the 
host system. 

Having read look ahead is not
so much a hint as it is a permission to store 
speculative read data in the buffer. Read ahead
continues to read starting at the end of read 
commands and ends when the buffer segment 
is full or a new seek is needed. 

The purpose of read look ahead is to avoid
extra drive rev waits during sequential read 
commands. In the time it takes to finish one 
read and issue the command for the next
read the drive may rotate past the start of 
the next sequential sector. The drive would 
then have to wait for a revolution time to 
continue the read. If read look ahead is on, data
passing under the head during the host command 
generation overhead period is read 
into the buffer. That way the data is there for 
a sequential read and no extra rev is needed. 

The penalty for not having read ahead in 
an environment where there are some sequential
reads is high, about 1 rev per subsequent 
sequential command. If you absolutely knew
that there would be no sequential reads then 
turning look ahead off would free up some 
buffer space, which might improve performance
if operation was drive buffer size constrained. 

Read look ahead is an important performance
enhancing feature for almost all applications. 

Best Regards,
Daniel J. Colegrove
Hitachi Global Storage Technologies

[EMAIL PROTECTED]
(702) 614-6119



Hale Landis <[EMAIL PROTECTED]> 
Sent by: [EMAIL PROTECTED]
06/29/2005 01:27 PM
Please respond to
Hale Landis <[EMAIL PROTECTED]>


To
[email protected]
cc

Subject
Re: [t13] Read Look Ahead






This message is from the T13 list server.


Jeff Garzik wrote:
> Going in the wrong direction.  Talk to the people who write OS 
> application software, because its they who generate the data access 
> patterns.

Lets be real - no one knows the actual physical data access patterns.

Quiz: In a typical multitasking OS with ten applications running each 
SEQUENTIALLY reading or writing files on the same disk drive - what is 
the data access pattern actually seen by the drive?

> "read ahead" is a hint.

Read ahead is a hint and some OS's and some I/O subsystems (s/w and h/w) 
  pass this hint down to the lowest levels of the storage subsystem on a 
COMMAND BY COMMAND baises - after all it requires only ONE BIT of data 
in the s/w I/O command structures or in a device's R/W command parameters.

> It allows the OS to hint to the device that 
> reading ahead is likely to be an overall win (or, if disabled, an 
> overall loss).  If a data access pattern is largely random, involving 
> lots of seeks, one would be smart to disable read-ahead, BUT NOT ALL 
> READ CACHING.

The ATA SET FEATURES commands for controlling read ahead and write cache 
were never intended to be used in this manner and would probably be very 
ineffective is used in this manner.

> Users are far more likely to want to disable read-ahead, than to disable 

> read caching.

Users? Explain please... Application program? File system? I/O driver?

Hale

-- 

++ Hale Landis ++ www.ata-atapi.com ++



Reply via email to