[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Apple disk drive...
- Subject: Re: Apple disk drive...
- From: dempson@actrix.gen.nz (David Empson)
- Date: Wed, 7 May 2003 21:38:26 +1200
- Newsgroups: comp.sys.apple2
- Organization: TelstraClear
- References: <8uVsa.41493$3h5.660259@news2.east.cox.net> <b918us$k52$1@freenet9.carleton.ca>
- User-agent: MacSOUP/2.5b2 (Mac OS X version 10.2.5)
- Xref: archiver1.google.com comp.sys.apple2:30246
Michael Black <et472@FreeNet.Carleton.CA> wrote:
> "Hon Tseng" (pcuser45@yahoo.com) writes:
> > Commodore 1541 disk drive is always slow. Atari 1050 disk drive is always
> > fast. IBM disk drive is always Ultra-fast. How fast is Apple 140k disk
> > drive? Does it speed faster than Atari 1050?
> >
> One reason the Commodore (and at least some Atari) drives are slow
> is that they are connected to the computers via a serial port.
>
> The IBM and the Apple (plus plenty of other computers) have
> the disk controller connected via a parallel connection, so
> they tend to be faster.
As others have noted, this is not correct. Both the Apple II and IBM PC
have a serial data connection to the drive. They use separate signals
to control the drive, e.g. the Apple II has four outputs to control the
stepper motor, a write enable output, write protect sense input, two
drive select outputs, etc.
The main reason for the differences in drive performance are the speed
at which the serial connection is able to transfer data, and latency due
to extra processing inside the drive or computer.
I'm not particularly familiar with the Commodore drive, other than
knowing it contains its own CPU which does the low-level disk accesses.
The Apple II 5.25" drive transfers data to and from the computer at
approximately 250kbps (4 microseconds per bit). This is raw disk data
(mostly 6-and-2 encoded GCR), which is encoded and decoded in software
on the Apple II. A single 256 byte sector requires about 2730 bits of
raw data on the disk, just for the data itself. Allowing for the sector
header, gaps, checksum, etc., we'll say about 3000 bits in total.
It takes about 12 milliseconds to read or write the entire sector of raw
data. A typical implementation does the encoding or decoding phase
separately for each sector, and by the time this is finished, the next
sector has already passed the disk head. This means that it is not
possible to read adjacent sectors on the same pass of the head, and a
minimum of two revolutions are required to read an entire track.
Assuming the disk is spinning at 300 rpm (is that right?), it does 5
revolutions per second (200 ms per revolution) and it will take at least
two revolutions (400 ms) to read 16 x 256 = 4 KB of data. Ignoring the
overhead required to move the head to the next track and to wait for a
sector header, the end result is a maximum data transfer rate in the
order of 10 KB per second (or an effective processed data rate of 80000
bits per second).
It is possible to read the disk somewhat faster by reading an entire
track of raw data into memory and decoding it in one pass, with the
decoding overlapping the movement of the drive head.
For comparison, the Apple 3.5 Drive uses bit cells which are only 2
microseconds wide, for a raw transfer rate of 500kbps. On an Apple IIgs
or Mac, this drive can easily achieve transfer rates which are twice
that of the 5.25" drive.
The UniDisk 3.5 uses the same drive mechanism, but it contains a
microprocessor which is responsible for doing the GCR encode/decode, and
has an intelligent packet-based protocol to exchange data with the
computer, which operates at the same speed as the 5.25" drive (4
microseconds per bit, but the data encoding is somewhat more efficient
because there are 7 data bits per byte instead of 6). The end result is
that a UniDisk 3.5 transfers data at about the same rate as a 5.25"
drive.
--
David Empson
dempson@actrix.gen.nz