🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.amiga.tech
Article #2061

Re: Smooth Operator (for disks)

#2061
From: Colin Plumb
Date: Thu, 09 Nov 1989 19:09
41 lines
2786 bytes
In article <81.filbo@gorn.santa-cruz.ca.us> filbo@gorn.santa-cruz.ca.us (Bela Lubkin) writes:
> Transfer rate is not an insignificant problem either: since Amiga-format
> floppies don't use sectors, an entire track must always be read.  At 360
> RPM, that's 1/6 second.  (Or is it 300 RPM and 1/5 sec?)  I suspect that
> trackdisk.device also waits for start-of-track before beginning to read,
> adding another 1/12 sec average latency.

300 RPM; 200 ms.  To make sure it gets all 11 sectors, the trackdisk.device
actually reads about 1.1 revolutions, 220 ms.

Since worst-case seek is 79*3 = 237 ms seek time +15 ms settling time =
252 ms is not much worse than the time to actually read a track, I came to
the conclusion that it's important to get a lot out of a track, but
after that, which track it is isn't terribly important.

> Anyway, what you (and I) want is a track cache.  Why try to speed up the
> seeking when it isn't necessary?  Most of that back-and-forth seeking is
> reading the same two tracks alternately as the 2 processes each read the
> next data.  If trackdisk.device cached just 2 tracks for each drive (the
> previous one and the current one), much of the contention would go away.
> Not all of it, but enough to make me much happier...

Apparently, it's being added.  The original 0.95 (or whatever it's called)
trackdisk.device cached multiple tracks, but then they decided that was too
memory-hungry.  Since memory is getting cheaper, the feature is coming back.

> Just a sanity check here: I don't THINK "AddBuffers" does this.  It sure
> sure SEEMS as if AddBuffers buffers contain only logical "sectors" which
> have already been read, which are exactly those that are NOT going to be
> reread when 2 processes are fighting over a drive for sequential access.

AddBuffers doesn't do this.  Addbuffers is AmigaDOS' cache, and it doesn't
know that the trackdisk.device has already done all the work of reading in
all the other sectors on this track, so AmigaDOS doesn't think to cache
them.  The result, when two reads are being interleaved, is that it reads
one sector from each track before seeking to the next, resulting in less
than 1/11 of the maximum transfer speed.  Bad news.

Read-ahead could also alleviate the problem to a degree.
-- 
	-Colin
Technical Details
Message-ID: <18025@watdragon.waterloo.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watmath!watdragon!rose!ccplumb
References: <5850@ucdavis.ucdavis.edu> <81.filbo@gorn.santa-cruz.ca.us>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watmath!watdragon!rose!ccplumb
From: ccplumb@rose.waterloo.edu (Colin Plumb)
Newsgroups: comp.sys.amiga.tech
Subject: Re: Smooth Operator (for disks)
Message-ID: <18025@watdragon.waterloo.edu>
Date: 9 Nov 89 19:09:35 GMT
References: <5850@ucdavis.ucdavis.edu> <81.filbo@gorn.santa-cruz.ca.us>
Sender: daemon@watdragon.waterloo.edu
Reply-To: ccplumb@rose.waterloo.edu (Colin Plumb)
Organization: U. of Waterloo, Ontario
Lines: 41