Disk hardware emulation, was Re: Grandfather system RTE6/VM?

From: Pete Turnbull <pete_at_dunnington.u-net.com>
Date: Sun Dec 7 10:27:35 2003

On Dec 7, 14:11, Jules Richardson wrote:
> Forgive me as I'm half asleep today (the top half I think,
unfortunately
> containing my brain...)
>
> A few points on this...
>
> a) I'm only personally interested in ST506 type drives as that's all
I
> have; others will be worrying about other technologies. Is there a
case
> where the data stream coming off the drive on a read (or going to the
> drive on a write) might be something other "r/w a single sector"? I'm
> just wondering about this sampling idea - it sounds plausible if the
> only commands available are to read or write a single sector (plus
the
> usual seek etc.) but are other commands available where the data
stream
> to/from the drive might be different if say, multiple sectors can be
> read/written in one command? At that point the sampling idea falls on
> its ass if bolting together several emulated sectors doesn't give the
> same data as it would for a real drive.
>
> b) In the case of ST506, I'm taking it that the controller always
> provides the clock signal for reads and writes - otherwise,
presumably,
> there'd be no need for this oversampling of the raw bit stream idea.
It
> could be just sampled at the speed of the drive.

I'm sure Tony will comment further, but his idea has the merit of not
being restricted to single sectors; in fact it doesn't need to know
*anything* about the data it's handling. It can start sampling when
the interface is set to write and the relevant drive is selected, and
stop when it isn't. Similarly it can replay the data stream when
requested. There's nothing magical about a sector, it's just a stream
of interspersed data and clock bits -- headers and all. However, it
does need to be oversampled so you can get the timing right.

An ST506 interface is very similar to a floppy interface, only 10 or 12
times faster.

The way you read a sector from an ST506 interface is to "listen" to the
data strema until you see the header for the sector you want, then
start capturing the data. The way you write is to listen, and when you
see the end of the preceeding sector, you wait (for the inter-sector
gap time) then turn on the write signal and write a sync pattern, a
header, more sync, the data+checksum, then turn the write signal off.
 Actually, IIRC you only rewrite the data, unless you're doing a
low-level format.

So Tony's idea could handle everything including an LLF, for any format
and any encoding scheme you like.

> c) Something that works "with most ST506 drives" is, IMHO, not good
> enough. If a drive works with the ST506 controller with which it was
> formatted, it should work with the emulator. Finding that it doesn't
> work emulating XYZ's drive 6 months down the line because said drive
is
> within spec but our emulator doesn't quite like the drive spec
doesn't
> seem good enough. I don't know about other classic drive technologies
> (all my old systems are ST506 or SCSI), so somebody can argue that
case
> seperately :-)

Shouldn't be a problem, if you're sampling. It would be if you need to
understand what the format etc is.

> d) Tony's point about being able to understand all of the system duly
> noted - only problem I see there there being the various combinations
of
> hardware options that would likely be useful to people. People would
> find emulation of drives other than ST506 types useful I'm sure. Then
on
> the 'modern' side of the interface, there are various options - IDE,
> SCSI, Ethernet, Token Ring and who knows what else. Ultimately at
least,
> it seems like using off the shelf components and software to drive
the
> modern side of things - and provide flexibility of operation - will
> outweigh the desire to know intimately the entire system.

You'll have a job to get a parallel port or any other standard
interface to work fast enough to talk to the ST506 side. On the
storage side, you could use anything you like -- make the software in
the emulation system modular, and storage is just storage -- whether
it's SCSI, ATA/IDE, network filestore, flash, whatever.


-- 
Pete						Peter Turnbull
						Network Manager
						University of York
Received on Sun Dec 07 2003 - 10:27:35 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:35:49 BST