PDA

View Full Version : Can an XT benefit with 32KB NIC buffer?



luvit
March 1st, 2014, 09:59 AM
I have some source for NICs in my XT's 8-bit slot, but almost forgot to consider memory built-into the NIC.
I've never worried about it in the past, because I never used ethernet in less than 16-bit system.

Is there a legacy ISA NIC with 32KB of memory?
Is it a make and model that may work in the XT and the XT can take advantage of or benefit from that 32KB?

i may be splitting hairs, but every dollar counts and I have the time on my hands.
The hardest part may be researching buffer sizes of legacy NICS.

Krille
March 1st, 2014, 10:57 AM
If you are concerned about performance then I would suggest looking at the mTCP Performance Notes (http://brutman.com/mTCP/mTCP_Performance.html) or other similar benchmarks.

mbbrutman
March 1st, 2014, 11:00 AM
Unless you are demanding the absolute best performance, the buffer size does not matter. Yes, big buffers are better. But you are on an XT class machine - by definition you are not terribly interested in getting something done quickly.

I would go for things that work. And if you can get a higher performing card, that's just a bogus.


Mike

luvit
March 1st, 2014, 11:06 AM
Mike and Krille,
Abstract question.
Do you think, if I pay attention, do you think can "feel" the difference between 32K and 0K?
edit: (on an XT)

Stone
March 1st, 2014, 11:06 AM
And if you can get a higher performing card, that's just a bogus.That's just a typo; you weren't being facetious, right? :-)

Chuck(G)
March 1st, 2014, 11:46 AM
Is there a legacy ISA NIC with 32KB of memory?
Is it a make and model that may work in the XT and the XT can take advantage of or benefit from that 32KB?


Yes--at least one that is upgradeable--the Artisoft AE-2/T. The buffer RAM as provided is 16K socketed and a 64K SRAM can easily be substituted and a jumper changed. Whether or not it will lead to better performance in an XT, I have no idea.

mbbrutman
March 1st, 2014, 12:44 PM
That's just a typo; you weren't being facetious, right? :-)

Yes, just a funny typo. ; - 0

Mike Chambers
March 1st, 2014, 04:29 PM
With an XT, there's a point where larger buffers make no practical difference in transfer speed. I'd guess around 16 KB.

mbbrutman
March 1st, 2014, 05:33 PM
With an XT, there's a point where larger buffers make no practical difference in transfer speed. I'd guess around 16 KB.

Be careful with statements like that.

The primary use of the receive buffers is to smooth things out. With bigger buffers the card can continue receiving packets, even when the XT is hung up doing something else, like hard drive access. So while bigger buffers in general do not help transfer speed, they are extremely important in covering over the glitches caused by screen scrolling (glacial on a CGA), hard drive and floppy accesses, unresponsive code, etc.

In simpler terms - smaller buffers means more dropped packets if the application has to take a moment to do something else once in a while.

Chuck(G)
March 1st, 2014, 05:56 PM
As Mike says, the same could be said about FIFOs and buffers for any device--if the demand for data exceeds the supply capabilities of a device, then you might as well have no buffering. (Caching is a different matter, however).

pearce_jj
March 1st, 2014, 11:23 PM
It depends what you're doing server side - the TCP window limit is six packets (8760 bytes) on NT 4, for example, so 16KB would be adequate in that case.

luvit
March 2nd, 2014, 05:32 AM
In this modern day, I think I'll lean towards over-doing it. I plan to spend a lot of time with my network.. I don't have 5.25 floppy stash at the present.
I really don't mind being a disk-jockey, but I'm afraid file transfers over the network may take away my vintage experience. lol. -- I'm just returning to the XT scene.
ISA NICs with 16 kbyte is pretty easy to find. Cards with more is not so easy.. I can always find NICs, but researching their specs can be a chore.

mbbrutman
March 2nd, 2014, 08:38 AM
It depends what you're doing server side - the TCP window limit is six packets (8760 bytes) on NT 4, for example, so 16KB would be adequate in that case.

That statement does not take into account that a machine is never just dealing with one socket connection. And that it was common programming practice to increase the receive buffer window by using a set socket option call. Even the mTCP applications generally use larger TCP receive buffers.

It also doesn't take into account that any machine (a PC XT or something running a more advanced operating system) is constantly getting bombarded by broadcast traffic. Modern networks are very noisy and you have to have extra buffering capacity even if the packets are not interesting to you.

Krille
March 2nd, 2014, 08:54 AM
The buffer size is just one of many variables that determines the performance of a NIC. With an XT I'd be more concerned about what kinds of I/O can be used to move data to/from the card. A NIC that can only do port I/O is probably fine with a V20 CPU but if you've got an 8088 then you'd probably want a NIC that can do memory mapped I/O instead.

There are of course many other factors; many cards use the same type of chip but the overall implementation differs and there are also differences in the quality of the drivers etc. My point is that you shouldn't just look at buffer sizes.

BTW, do you have any ISA NICs (8 or 16 bit) now?

luvit
March 2nd, 2014, 09:10 AM
I do not have any ISA NICs right now. I'm replacing hardware I've lost in a flood 10yrs ago.
Since i've left my career, I have some cycles available to go back to this hobby. I really am starting on a blank slate.

For now, I would like to avoid the V20 CPU. -- I may implement V20 in another machine in the future.
I haven't been able to determine which NICs are memory mapped vs buffer RAM.. I've never networked an 8bit PC, i'm finding this information facinating.
I'm really struggling more that I realized.. I just put-up a WTB ad for a Artisoft AE-2/T, but perhaps that may not be as optimal as I need for the XT.
I will still want a AE-2/T for another PC in the future, though.

If you guys know of semi-common memory-mapped NIC make/models, I'll put my time into finding those.
I can find makes and models easier, based on your recommendations, -- easier than me researching specs of cards on eBay or classifieds..

Krille
March 2nd, 2014, 09:30 AM
Modern networks are very noisy and you have to have extra buffering capacity even if the packets are not interesting to you.

This reminds me... I've noticed that mTCP registers itself as the receiver of all packets instead of just ARP and IP. Is there a particular reason for this? If not, you would save some processing by just letting the packet driver throw away the unwanted packets. Also, it would allow mTCP to coexist with other protocols, right? Probably not a big deal since everything is TCP/IP these days but still.

mbbrutman
March 2nd, 2014, 09:57 AM
This reminds me... I've noticed that mTCP registers itself as the receiver of all packets instead of just ARP and IP. Is there a particular reason for this? If not, you would save some processing by just letting the packet driver throw away the unwanted packets. Also, it would allow mTCP to coexist with other protocols, right? Probably not a big deal since everything is TCP/IP these days but still.

Originally it was for debugging - I needed to see not just ARP and IP, but everything on the network. My debug mode in mTCP is based on TCPDump and I did not want to install blinders on it right away.

Registering for specific packet types is possible. It would let you run a TSR that does IPX (or a different protocol) without interfering with the foreground TCP application. But that would be about the only reason to do it.

mbbrutman
March 2nd, 2014, 10:02 AM
Re: NEC V20

There are few reasons not to do this. For about $10 you get a 5 to 10% improvement in performance on your machine. And unlike other speed modifications like messing with the DMA memory refresh rate, overclocking, etc. there is absolutely no risk. It just works.

Unless you want to play an unpatched version of Lode Runner. But all of the software that was ever reputed to be not compatible with the V20 has been patched. It is a well understood problem.

The second big reason for a V20 is that it gives you a lot of the additional 80286 instructions that are not related to protected mode. This lets you run things like the Iomega Guest drivers for Zip drives, which do not work on 8088 and 8086 processors. NCSA Telnet is another example of a program that requires an 80286 CPU, will not run on an 8088 or 8086, but will run on a V20 because of the extra instructions that are provided.


As for the rest of your quest, you are over thinking this. Find one of these cards:


NE1000 or compatible
Xircom PE3 10BT (parallel port attached)
3Com 3C503
WD8003 series (* may need an AUI based transceiver)
Intel 8/16 series cards


Nearly anything will work for casual use.

Mike Chambers
March 2nd, 2014, 10:08 AM
Mike has a good point about the noisy networks. You might want to look into the 3C509-TP. They are EASILY available all over the place. It's a 16-bit card but it works in an 8-bit slot too, but needs a hacked packet driver to work on an 8088. (I can provide it if you get one, or if you just use a V20 I think the regular driver works)

I don't know the exact amount of buffer RAM, but it's a lot newer than most of the cards you'd find in an 8088. I suspect it's got a pretty large amount. Probably 32 KB. Another option is the Intel EtherExpress 8/16. It has 32 KB.

EDIT: I see Mike mentioned the Intel already.

luvit
March 2nd, 2014, 10:44 AM
MikeB, I disagree on the 'overthinking this' statement. It's a learning process and that statement is sometimes used in an over-generalized way, perhaps not written the same way as I read it. As you said in an earlier post in this thread -- if I demand best performance, I'll look for buffer. Your two posts are sort of contradicting posts.
I'll review your card recommendations.. at first glance, I don't think the NE1000 is more than 8kb.
In other threads, you state you have higher performing cards with higher buffers, can you please share the make and models you personally use?
I'm not sure if my use of the NIC will be casual.. so I'm choosing the best.

Krille
March 2nd, 2014, 11:07 AM
You might want to look into the 3C509-TP. They are EASILY available all over the place. It's a 16-bit card but it works in an 8-bit slot too, but needs a hacked packet driver to work on an 8088. (I can provide it if you get one, or if you just use a V20 I think the regular driver works)

I don't know the exact amount of buffer RAM, but it's a lot newer than most of the cards you'd find in an 8088. I suspect it's got a pretty large amount. Probably 32 KB.

Just to clarify;

Only the 3C509B works in an 8 bit slot. The older non-B variants need a 16 bit slot.
The B variants have a 32 KB buffer, the non-B only 4 KB.

They both do only port I/O so a NEC V20 processor would be preferable BUT nestor's "hacked" driver will not benefit from a V20 processor and the original driver will not work at all with anything less than a 286.

You would also need an AT machine to configure the card (change the IRQ) before using it in an XT.

Mike Chambers
March 2nd, 2014, 11:10 AM
MikeB, I disagree on the 'overthinking this' statement. It's a learning process and that statement is sometimes used in an over-generalized way, perhaps not written the same way as I read it. As you said in an earlier post in this thread -- if I demand best performance, I'll look for buffer. Your two posts are sort of contradicting posts.
I'll review your card recommendations.. at first glance, I don't think the NE1000 is more than 8kb.
In other threads, you state you have higher performing cards with higher buffers, can you please share the make and models you personally use?
I'm not sure if my use of the NIC will be casual.. so I'm choosing the best.

Stay away from the NE1000. Far, far away. It might be the worst-performing card I've ever used.

Mike Chambers
March 2nd, 2014, 11:11 AM
Just to clarify;

Only the 3C509B works in an 8 bit slot. The older non-B variants need a 16 bit slot.
The B variants have a 32 KB buffer, the non-B only 4 KB.

They both do only port I/O so a NEC V20 processor would be preferable BUT nestor's "hacked" driver will not benefit from a V20 processor and the original driver will not work at all with anything less than a 286.

You would also need an AT machine to configure the card (change the IRQ) before using it in an XT.

Thanks for the clarification. I thought I might have got the specific model wrong, I had a quick look around for one that worked in my XT that I thought was sitting around here somewhere to be sure but couldn't find it.

Yes, sometimes the IRQ might have to be changed. It can be a bit of a hassle to set it up by swapping it to another machine, but the performance is amazing. I think it's the best ethernet performance I've gotten on an 8088 so far.

Krille
March 2nd, 2014, 12:55 PM
I haven't verified this on real hardware yet, but when I recompile Fake86 without support for 80186/V20 instructions 3C5X9CFG.EXE still runs just fine in it. It should work an a real 8088 as-is.

Did you ever verify this? Looking at that thread (http://www.vintage-computer.com/vcforum/showthread.php?30537-Feeling-lucky-is-the-3c509B-compatible-with-8088-using-NE1000-drivers) I realized 3C5X9CFG.EXE might just work on an XT after all?

mbbrutman
March 2nd, 2014, 01:30 PM
Stay away from the NE1000. Far, far away. It might be the worst-performing card I've ever used.

You really need to qualify statements like that.

My own measurements from http://www.brutman.com/mTCP/mTCP_Performance.html show that an NE1000 is the worst of the cards. It can only transfer at 60KB/sec while a 3Com 3C503 can transfer at around 90KB/sec. A 50% difference seems horrible.

However, NE1000s were dirt cheap and common. And everything supported them. Those are some pretty nice attributes. And we are not talking about orders of magnitude in difference on performance. When you use a real world application like FTP, the network card becomes less of an issue.

So is it slow? Yes. But if you are throwing any away, I'll take them.

mbbrutman
March 2nd, 2014, 01:32 PM
MikeB, I disagree on the 'overthinking this' statement. It's a learning process and that statement is sometimes used in an over-generalized way, perhaps not written the same way as I read it. As you said in an earlier post in this thread -- if I demand best performance, I'll look for buffer. Your two posts are sort of contradicting posts.
I'll review your card recommendations.. at first glance, I don't think the NE1000 is more than 8kb.
In other threads, you state you have higher performing cards with higher buffers, can you please share the make and models you personally use?
I'm not sure if my use of the NIC will be casual.. so I'm choosing the best.

You can put whatever effort you want into it. But for somebody just getting started on a project, getting something that works is the first goal. Getting hung up on performance before you transfer your first byte seems a bit like putting the cart before the horse.

luvit
March 2nd, 2014, 01:41 PM
I really appreciate your knowledge, mike. I'm only going to buy one nic and that's a good thing.
I really am curious on which nics you have in your vintage machines. Can you please share that info?

mbbrutman
March 2nd, 2014, 01:48 PM
All of the above?

There is a link in my previous post ...

luvit
March 2nd, 2014, 01:52 PM
Hey, thanks. I did forget about that link by the time I finished reading those two posts.
i;ll take a good look.

Mike Chambers
March 2nd, 2014, 02:03 PM
So is it slow? Yes. But if you are throwing any away, I'll take them.

Of course so would I, but obviously he's looking for a well-performing card so I am just offering him sound advice. ;)

There are other much faster cards that are well-supported and also cheap/easy to acquire.

luvit
March 2nd, 2014, 02:22 PM
This thread is has shown interest and I have very much accepted EVERYONE's observations, facts, recommendations, and ideas. I've also received PMs.
The more direct the answers were to my question and interest, the more useful of a reply it was.
I'm beyond the age of been there, done that, slapping things together and simply getting typical or good results.
My interests are not "gee, i got an cool old PC to show my confused friends or family".
This is the forum where these discussions are expected to be embraced. For the most part.. that has happened.
I do look forward to more discussion on this. I'll be letting you all know which card i have secured for my XT when that happens (:

Malc
March 6th, 2014, 02:20 AM
........ 3C5X9CFG.EXE might just work on an XT after all?

A long time back i used a 3C509B in my XT 5160 solely for the boot rom socket to home the XTIDE bios, IIRC 3C5X9CFG.EXE ran fine in my 5160, I do remember having to plug the card in an AT machine to set the card up to work in the XT initially.

luvit
March 6th, 2014, 07:21 AM
yeah, i expect to see some of that jumperless configuration situations.
like when i would configure jumperless modems in a windows machine and then drop it into linux, years ago.

Krille
March 6th, 2014, 03:55 PM
A long time back...

Thanks for confirming that!

luvit
March 6th, 2014, 04:37 PM
is the 3c509B memory mapped i/o?
I'm about to pull the trigger on some nic purchases and the 3c509B is an option.. I wonder how it would compare to that WD8003E.
I'm still sticking with the XT's native processor