Subject: Re: Of SCSI disks and things amiss
To: None <tech-kern@NetBSD.ORG>
From: der Mouse <mouse@Collatz.McRCIM.McGill.EDU>
Date: 03/01/1996 11:02:14
> If a disk reported the *actual* size, would it not be possible tell
> which sectors were phsically in the same cylinder?
No, unfortunately one can't. There is no way to ask the disk itself,
and with modern disks the sectors-per-track value varies depending on
the cylinder number, so you can't work it out from the cylinder number
without knowing the details of _how_ sec/trk varies with cylno.
> ie, if you divided the total disk by the number of heads, you could
> theoretically calculate the offset of each platter. And if a sectors
> were at any common offset from each platter, they would be in the
> same cylinder.
I think you have the ordering wrong. The assumption is (I don't know
whether this is valid nowadays or not) that cylinder number is the
most-significant part of the sector number, and what you say sounds as
though you think it's in the middle.
That is, if we ignore variable-geometry disks (that is, pretend that
sectors-per-track is fixed), the relation is
a = s + (ns * (t + (nt * c)))
a = absolute sector number, from beginning of disk
s = sector number from beginning of track
(ie, rotational position)
t = track number
(ie, vertical position, which head to use)
c = cylinder number
(ie, radial position, where to seek to)
ns = number of sectors in one track
nt = number of tracks (ie, head count)
But what you wrote sounds to me as though you think it's
a = s + (ns * (c + (nc * t)))
nc = number of cylinders
others as above
Indeed, this raises the unpleasant possibility that some disk maker may
have decided to _not_ make cylinder number the most-significant part of
the absolute sector number, in which case _all_ the assumptions about
disk layout go right out the window.