Hi!

> I don't receive gigabytes at once. I have multiple serial lines using a
> RS485 similar communications method (Master - Slave). The peers can be
> up to 1KM away. Each line can have up to 50 peers. Each peer is
> interrupted when it's 9-bit address is called and it starts
> communicating. All peers are remote from each other but are one system
> that must work synchronized. The large RAM usage is because the DOS
> program (the big boss) must make fast decisions depending on things that
> can have happened some time ago. Also, many peers have so little memory
> that most of their status is stored by the DOS program and must be
> available at any time. A disk is too slow.

Still... What needs more than 2 GB of data in that scenario?

You can now have M2 SSD with between half a million and 1 million
I/O per second, both for reading and writing. Even if you consider
that single-threaded DOS I/O will perform significantly worse,
you still get plenty of time for a bit of I/O unless you require
nanosecond reaction times on a RS485 line where it takes at a few
microseconds to transmit a single bit given your cable lengths.

You could also use a multi level system with ramdisk, disk cache,
fast SSD as disk, compressed swap memory etc. but of course I do
not know which types of data access you need :-)

I remember that when working with data acquisition in DOS, even
the BIOS USB support for mice or keyboards had significant lag
and jitter in the order of milliseconds, so there certainly is
a point in using RAM for the fastest bits of your task - I just
see an interesting challenge here to reduce footprint below the
32 bit pointer limit of a few gigabytes. Because beyond that,
you will either make your whole app 64 bit or have to work by
copying memory areas in and out your accessible few GB space,
which is what HIMEMX with ultra extended XMS 3.5 would offer
unless you also have a matching ultra extended long mode DOS
extender to run the whole app in 64 bit address space.

Another idea could be "ultra EMS" which just maps memory into
accessible address space with a not-too-bad delay, giving you
more freedom to decide later which exact address to access,
without having to copy whole blocks.

Regards, Eric



_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to