UZIX Zilog Inside
UNIX Implementation for MSX

[UZIX] [Tech info] [Status] [TCP/IP] [WWW] [Shots] [Docs] [Downloads]

Results of ethernet card prototype on UZIX

Objectives:

    The primary purpose of this research is proving that a MSX can be connected to a network using an ethernet card. The secondary purpose is giving motivation to hardwaremakers to produce such a card. This is, until now, the first and only functional, tested and usable ethernet card for MSX machines.
    Adriano Cunha, the author, his company A&L Software, Ademir Carchano or CIEL, his company, will not produce such hardware. A&L Software will, certainly, create UZIX drivers for any ethernet card developed for MSX, since the required knowdledge was already acquired.

The hardware:

    For the ethernet hardware, the Rabbit 2000 TCP/IP Development Kit was used. This development kit contains a Rabbit 2000 microprocessor running at 18MHz and a RealTek RTL8019AS Ethernet Controller.


The Rabbit DevKit used as ethernet card A closer look in the chips
  
The RTL8019AS chip The Rabbit 2000 microprocessor


    To make communication between MSX and the Rabbit DevKit, a former ATA IDE and former FlashROM cartridge from CIEL were modified. Any byte written or read on the interface memory area is sent or received by the Rabbit DevKit, using digital 4-bit sinchronous communication (each byte is split in two nibbles).



The MSX cartridge to communicate with the Rabbit DevKit


    Finally, the Rabbit DevKit is plugged on a hub and on a MSX machine, being ready to be part of any network.

The hub linking a MSX and a PC in a network The MSX Turbo-R used for testing

The software:

    The software needed to handle the ethernet card is divided between MSX and Rabbit DevKit.
Results:

     Here are a brief resume of the results of the tests with the ethernet card. The comparison with a PC were made against a Pentium III 500MHz computer with 128Mb RAM and 8GB HD running RedHat Linux 6.2.
     The MSX and the PC were connected to the same network by a hub. The network is a private network of NipNet, a local ISP that operates using a radio link.
     For the modem test, the same ISP, UOL, telephone line, access number and user were used. The modem used on MSX is a US Robotics Sportster 14.4kbps. On PC, the modem is a Genius GM56PCI-L 56kbps.
     The TCP/UDP transfer rates were measured using FudeBrowZer to download the UZIX webpage from http://uzix.sf.net and dividing the page size by the time it takes to be loaded. Ten measures were made to get the average transfer rate. It's not the maximum or absolute average transfer rate (that depends on time of day, network load, server load, etc), but can be used for relative comparison.
     All the tests were done during a week, from 23:30h to 00:30h.



ping results (min/avg/max times in ms)
 
 
MSX Turbo-R GT, R800 processor at 7MHz, 512kb RAM, CIEL ATA-IDE and 512kb MegaRAM
 
Host MSX (ethernet) MSX (14k4 modem) PC (ethernet) PC (56k modem)
localhost
34/34/34
68/68/68
0/0/0
0/0/0
network gateway
34/68/102
N/A
16/47/108
N/A
www.msx.org
306/374/561
544/605/663
274/326/406
410/429/460
dcc.unicamp.br
68/90/136
238/321/391
34/68/127
140/158/200
 
 
MSX Turbo-R GT, Z80 processor at 3.5MHz, 512kb RAM, CIEL ATA-IDE and 512kb MegaRAM
 
Host MSX (ethernet) MSX (14k4 modem) PC (ethernet) PC (56k modem)
localhost
68/105/119
170/170/170
0/0/0
0/0/0
network gateway
119/196/391
N/A
16/29/45
N/A
www.msx.org
391/533/714
1173/1328/1496
311/375/452
440/457/501
dcc.unicamp.br
170/293/527
1190/1252/1309
47/97/164
161/173/219
 
 
MSX 2+ Turbo CIEL, Z80 processor at 7MHz, 1Mb RAM, Sunrise ATA-IDE
 
Host MSX (ethernet) MSX (14k4 modem) PC (ethernet) PC (56k modem)
localhost
51/51/51
119/119/119
0/0/0
0/0/0
network gateway
51/97/153
N/A
15/33/21
N/A
www.msx.org
408/566/969
714/778/1207
363/543/897
399/445/478
dcc.unicamp.br
102/206/816
425/491/629
43/138/254
153/188/205
 
 
 

TCP/UDP transfer rate (average value, in kb/s)
 
 
Machine
Transfer rate
MSX Turbo-R (Z80 mode, 3.5MHz), 14k4 modem
0.16
MSX 2+ Turbo CIEL (7MHz), 14k4 modem
0.46
MSX Turbo-R (R800 mode, 7MHz), 14k4 modem
0.82
MSX Turbo-R (Z80 mode, 3.5MHz), ethernet
1.59
MSX 2+ Turbo CIEL (7MHz), ethernet
2.58
MSX Turbo-R (R800 mode, 7MHz), ethernet
3.99
Pentium III 500MHz, 56k modem
4.82
Pentium III 500MHz, ethernet
69.28

Conclusions and proposals:

     As already concluded in RS232 speed comparison under UZIX, the bottleneck for high-speed communication (serial, paralel, ethernet, etc) using MSX is the CPU power.
     Even if spetacular transfer rates (like 10 or 20kb/s) couldn't be achieved with this ethernet card prototype for MSX, it was proved that this computer can really be connected to an ethernet network, being active part of it.
     Probably, any ethernet card produced for MSX can't reach transfer rates too much higher than the ones achieved with this prototype, if the hardware design follows the one used in Sunrise's RS232 (incoming bytes generate interrupts and MSX reads each one from 16550 UART). Maybe, using the approach of Harukaze RS232 (an internal 32kb buffer filled by the 16550 UART itself), higher speeds can be achieved, since reading an entire packet will be faster (and packet loss due to a missed byte will not occur).
     Also, checking achieved transfer rates for different values of MTU for TCP packets should lead to the best value for ethernet communication, resulting in speed gain. This performance research was not made (yet).
     Radical optimization alternatives such as rewriting UZIX TCP/IP module or UZIX kernel entirely in assembly language are not considered here. Also, using the ethernet card prototype on monotask and TCP/IP-less operating systems (such as MSXDOS) was disconsidered.

Acknowledgements:

     Special thanks go to Ademir Carchano for his precious help with hardware subjects. Also, Ademir is the owner of the Rabbit DevKit used in this prototype.
     Also thanks to Werner Kai, from Core Club, for lendging his WebCam to take the photos for this page and his help with hardware questions.

     This page was put online on 06/12/2001. Last update was on 06/12/2001 by Adriano Cunha.