| Deutsch English Français Italiano |
|
<100oetb$c5c7$1@paganini.bofh.team> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!3.eu.feeder.erje.net!2.eu.feeder.erje.net!feeder.erje.net!newsfeed.bofh.team!paganini.bofh.team!not-for-mail
From: antispam@fricas.org (Waldek Hebisch)
Newsgroups: comp.arch
Subject: Re: Is Parallel Programming Hard, And, If So, What Can You Do About It?
Date: Fri, 23 May 2025 00:18:53 -0000 (UTC)
Organization: To protect and to server
Message-ID: <100oetb$c5c7$1@paganini.bofh.team>
References: <vvnds6$3gism$1@dont-email.me> <edb59b7854474033c748f0fd668badaa@www.novabbs.org> <w32UP.481123$C51b.217868@fx17.iad> <vvqdas$g9oh$1@dont-email.me> <vvrcs9$msmc$2@dont-email.me> <0ec5d195f4732e6c92da77b7e2fa986d@www.novabbs.org> <vvribg$npn4$1@dont-email.me> <vvs343$ulkk$1@dont-email.me> <vvtt4d$1b8s7$4@dont-email.me> <2025May13.094035@mips.complang.tuwien.ac.at> <vvuuua$1mt7m$1@dont-email.me> <vvvons$3uvs3$2@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 23 May 2025 00:18:53 -0000 (UTC)
Injection-Info: paganini.bofh.team; logging-data="398727"; posting-host="WwiNTD3IIceGeoS5hCc4+A.user.paganini.bofh.team"; mail-complaints-to="usenet@bofh.team"; posting-account="9dIQLXBM7WM9KzA+yjdR4A";
User-Agent: tin/2.6.2-20221225 ("Pittyvaich") (Linux/6.1.0-9-amd64 (x86_64))
X-Notice: Filtered by postfilter v. 0.9.3
Bytes: 4604
Lines: 57
Stephen Fuld <sfuld@alumni.cmu.edu.invalid> wrote:
> On 5/13/2025 1:12 AM, Lawrence D'Oliveiro wrote:
>> On Tue, 13 May 2025 07:40:35 GMT, Anton Ertl wrote:
>>
>>> In this case the drive knows things that the OS does not: Consider that
>>> the OS asked for sector N what happens when the arm finally has settled
>>> enough to read from the track, and the first sector it sees is sector
>>> N+10.
>>
>> The OS isn’t likely to ask for one sector at a time.
>
> Frequently true, so consider this related scenario. The host requests a
> read of 10 sectors starting at sector N. When the head settles, the
> next sector is N+6. Without any in drive buffering, it would wait
> almost a full revolution till record N comes under the head.
>
> With buffering, but no cache, the drive reads record N+5 to N+9 into the
> buffer, then waits until the drive rotates to record N and begins the
> host transfer. This is an improvement because the transfer to the host
> is faster than the transfer from the disk, and the last 3 sectors can be
> transferred out of the buffer without waiting for the disk, so the
> transfer is completed faster.
>
> Now consider with caching. Similar, but after record N+9, the drive
> continues reading into the cache. Lets say there are 30 records on this
> track. If it reads all of the data into the cache, then proceeds as
> above once the disk rotates to record N, it has cost zero time, and if
> the host then issues another 10 sector read sequential to the initial
> one (or actually any sectors from N+10 to N+29). This can be satisfied
> out of the cache without any drive delay, so much faster than without
> the cache, and the heads can be moved away to start satisfying another
> unrelated request. There is minimal cost and substantial benefit.
>
> Now you have argued that the file system cache should take care of that,
> presumably issuing prefetch reads for the next sectors. This will work,
> of course, but has some disadvantages relative to using the drive cache.
> Specifically,since it is unlikely the prefetch request will be
> received by the drive before record N+10 has passed the heads, it will
> incur additional most of a rotational delay, which will tie up the
> drive, preventing it from responding to some other request.
>
> No one is arguing that host based file caches are bad. It is simply the
> fact that there are situations where drive caches are a useful addition,
> and since the drive has to have some DRAM anyway for other reasons, the
> cost is minimal. You can think of the drive cache as the "next level"
> cache behind the host based cache.
It is pretty clear that due to drive mechanics track cache/buffer
is useful. However, the real question is about size: how big
should it be. For "consumer" drives I see claims of 256 MB
cache. Given rather optimistic 200 MB/s transfer rate it is
about 1.25s of drive data, that is 80-150 rotations. I would
expect that say 4 tracks should be enough for reading. For
writing one could use few more tracks. Still, advertised cache
sizes seem to be much bigger than necessary.
--
Waldek Hebisch