idea for a universal disk interface

Guy Sotomayor ggs at shiresoft.com
Wed Apr 13 12:01:42 CDT 2022


I've had a similar project in the works for a while (mainly for ESDI and 
SMD).

I think the main issue you're going to face is that what you need to do 
for something like ESDI or SMD (or any of the bit serial interfaces) is 
going to be radically different than something like IDE or SCSI.  This 
is not just the interface signals but also what's needed in the FPGA as 
well as the embedded SW.

For example, for the ESDI and SMD interface in order to meet the head 
switch times (1-2 microseconds) requires that a full cylinder be cached 
in HW.  Once you do that and look at the timings to move a max cylinder 
between the HW cache (that will serialize/de-serialize the data over the 
interface) and storage, you'll see that the only way to have any 
reasonable performance (e.g. not have seek times be > 40ms for *any* 
seek) is to cache the entire drive image in DRAM and lazily write back 
dirty tracks.

I've been looking at the Xylinx Zynq SoCs for this (mainly the Zynq 7020 
for single drive emulation and the Zynq Ultrascale+ for up to 4 
drives).  In my case the HW, FPGA logic and SW will share significant 
portions but they will not be identical.  In my case there is no need 
for an external PC (just adds complexity) other than something to do 
basic configuration (e.g. drive parameters such as number of heads, 
number of cylinders, etc) which will actually be over USB/serial.  The 
actual persistent storage will be an SD card since all reading will be 
done at "boot time" and writes will be handled in a lazy manner (since 
the writes will first go to the DRAM based upon time or seek).

It may also be sufficient for configuration purposes to have a file 
(text) on the SD card that defines the configuration so no external 
interactions would be necessary.  I'm still thinking about that one.  ;-)

TTFN - Guy

On 4/12/22 22:35, shadoooo via cctech wrote:
> Hello,
> I'm a decent collector of big iron, aka mini computers, mainly DEC and DG.
> I'm often facing common problems with storage devices, magnetic discs and tapes are a little prone to give headaches after years, and replacement drives/media in case of a severe failure are unobtainable.
> In some cases, the ability to make a dump of the media, also without a running computer is very important.
>
> Whence the idea: realize an universal device, with several input/output interfaces, which could be used both as storage emulator, to run a computer without real storage, and as controller emulator, to read/write a media without a running computer.
> To reduce costs as much as possible, and to allow the better compatibility, the main board shall host enough electrical interfaces to support a large number of disc standard interfaces, ideally by exchanging only a personality adapter for each specific interface, i.e. connectors and few components.
>
> There are several orders of problems:
> - electrical signals, number and type (most disk employ 5V TTL or 3.3V TTL, some interfaces use differential mode for some faster signals?)
> - logical implementation: several electrical signals are used for a specific interface. These must be handled with correct timings
> - software implementation: the universal device shall be able to switch between interface modes and be controlled by a remote PC
>
> I suppose the only way to obtain this is to employ an FPGA for logic implementation of the interface, and a microprocessor running Linux to handle software management, data interchange to external (via Ethernet). This means a Xilinx Zynq module for instance.
> I know there are several ready devices based on cheaper microcontrollers, but I'm sure these can't support fast and tight timing required by hard disk interfaces (SMD-E runs at 24MHz).
>
> The main board should include a large enough array of bidirectional transceivers, possibly with variable voltage, to support as much interfaces as possible, namely at least Shugart floppy, ST506 MFM/RLL, ESDI, SMD, IDE, SCSI1, DEC DSSI, DEC RX01/02, DG6030, and so on, to give a starting point.
> The common factor determining what kind of disc interface can be support on hardware side is obviously the type of transceiver employed, for instance a SATA would require a differential serial channel, which could not be available.
> But most old electronic is based on TTL/CMOS 5V logic, so a large variety of computer generations should be doable.
>
> For the first phase, I would ask you to contribute with a list of interfaces which could be interesting to emulate, specially if these are similar to one from my list.
> I please submitters to send me by email or by web link when possible, detailed documentation about the interface they propose, so I can check if it could be doable and what kind of electrical signals are needed.
> Also detailed information about interfaced I listed is appreciated, as could give some detail I'm missing.
>
> Thanks
> Andrea

-- 
TTFN - Guy



More information about the cctalk mailing list