[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MiNT] TT SCSI Speed (off topic)



Some months ago there was some discussion on this mailing list about the
speed of the TT SCSI. I am not sure whether anyone is still interested,
but as I was investigating it anyway I am posting the results on this list
in case they are of use.

As I am working on a SCSI - ethernet adapter, I have lately been
implementing a SCSI target controller which I test on a standard,
un-modified, 32 MHz TT. The controller is implemented in a FPGA (Field
Programmable Gate Array). I have taken considerable effort to ensure that
the controller is as fast as possible, and I believe I am achieving in the
region of 95% to 100% of the maximum possible speed. Therefore by
utilising this controller my results should represent the true maximum
speed that is possible with the TT SCSI bus.

Using my highly optimised SCSI target controller I have made some tests
transferring data to and from the TT. I was transferring data in blocks of
255 bytes. For the tests I used the ICD SCSI.PRG which enables arbitrary
SCSI commands to be sent and the results received and displayed. I do not
know whether other software would have generated different results,
although in a preliminary test HDDRIVER seems to achieve similar speeds.
The results were as follows:

Data transfer phase initiator from target (i.e. reading from SCSI
peripheral): First byte takes an exceptionally long time (about 15
microseconds) but subsequent bytes are transferred at a rate varying
between approximately 1.9 and 2.0 megabytes per second.

Data transfer phase initiator to target (i.e. writing to SCSI peripheral):
First byte again takes an exceptionally long time, subsequent bytes are
transferred at a constant rate of approximately 1.8 megabytes per second.

However there is exceptionally high command overhead as the TT SCSI is
very slow while transferring command information. Typically command
information (including command, message and status information) is
transferred at a rate of around 50 to 100 kilobytes per second. The result
is that when transferring 255 bytes of data, which takes around 130
microseconds) the total time taken is about double that, with command
transfer accounting for half of the time. That is despite command
information consisting of only 8 bytes, compared to 255 bytes of data!

These are the measurements which I have made. The actual performance will
be affected by a number of issues which I have not investigated. For
example the effect of the command overhead will depend upon the size of
the data being transferred. As I do not know the size of data transferred
to and from SCSI hard disc drives, for example, I cannot determine the
actual data transfer rate with command overhead taken into account.
However I presume blocks are somewhat larger than my 255 bytes of test
data. Then again the data transfer rate may be affected by how fast the
software can read the data or the amount of activity on the bus (if using
DMA) but as I am unfamiliar with the internals of the TT I do not know how
this affects real-life data transfer rates in various situations.

-- 
+-----------------------------------------------------------------------+
| Mario Becroft                * Tariland, New Zealand Atari User Group |
| mb@tos.pl.net                * Atari Hardware Developments            |
| http://www.ak.planet.gen.nz/~mario/ * Atari Serial Mouse Interface    |
+-----------------------------------------------------------------------+