Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to index page
Thread view  Board view
Jack

E-mail

Fresno, California USA,
05.05.2010, 21:34
 

Need User Comment Re: Possible UIDE /P Changes! (Announce)

I am seeking DOS users' comments about a possible change to UIDE.

I am still NOT happy with UIDE's speed on protected-mode systems.
Its current /P option helps reduce XMS use by setting its binary-
search table in upper or DOS memory and gains back 10% or more of
the speed lost to protected-mode XMS calls. But, the current /P
option is "complex" and is still inadequate -- There is a visible
speed loss when UIDE must run in protected-mode v.s. its speed in
real-mode, e.g. using UIDE and JEMMEX/JEMM386 is slower than when
using UIDE with UMBPCI.

The only way to minimize XMS calls is to put ALL of UIDE's tables
BACK in upper or DOS memory. This will give UIDE the same speed
as LBAcache in any cache size, since UIDE will again use XMS only
for cached disk/CD/DVD data or "misaligned" UltraDMA I-O (it sets
a 128K XMS buffer for this). This is equal to the original 2006
QCACHE, a "memory only" caching driver that had more speed.

If UIDE /P is "arranged" in memory with its 944 bytes of variable
data first, binary-search table 2nd, LRU indexes third, and cache
data table (8 bytes per cache block) last, that data table can be
given its own 80x86 "segment". This lets UIDE handle 8176 cache
blocks and set up to 511-MB caches with any DOS system -- NO more
V7.10 MS-DOS "restrictions" (UIDE's binary-search tables will NOT
be in the HMA!), when /P is specified.

A 511-MB cache will require a total of 105KB of upper/DOS memory,
a LOT as I do realize! Smaller caches will not use as much, 53K
memory for a 255-MB cache, etc. Note that most DOS systems with
"linear" upper-memory, i.e. no "embedded" addresses or "ROM BIOS"
logic, have over 132KB between the video-BIOS at C7FFFh and their
"system BIOS" at F0000h. Few DOS systems need ALL that area for
drivers, so the extra goes to waste, especially as JEMMEX/JEMM386
normally maps the B000h-B7FFFh monochrome video area (few use it)
for drivers, as well. For a system WITH "embedded" upper-memory
logic, UIDE will allow loading in "low" 640K DOS memory as before
so users needing large /P caches can decide to sacrifice some DOS
memory for speed, where necessary.

NOTE that for real-mode (UMBPCI) users, or users "not so worried"
by a minor UIDE speed loss in protected-mode, UIDE shall continue
to permit up to 4-GB caches using XMS memory, when /P is omitted.
I shall NOT be changing the "standard" 4-GB UIDE at all!

I believe such a "scheme" for UIDE /P is "The BEST of all Worlds"
as it permits FULL-speed caches up to 511-MB with all DOS systems
that need protected-mode. The only cost is the driver size, but
I believe most DOS systems would support a "memory only" cache up
to 255-MB (53K driver), and many would also support a cache up to
511-MB (105K driver).

What do all of YOU think?? Please post your comments here, so I
can be positive this is the best-possible UIDE /P upgrade, before
beginning my driver changes.

---
(Account disabled on user's request.)

Arjay

05.05.2010, 23:12
(edited by Arjay, 05.05.2010, 23:25)

@ Jack
 

Need User Comment Re: Possible UIDE /P Changes!

> What do all of YOU think??
Firstly a personal "thank you" for your continuing to update your good work.

> Please post your comments here,
> can be positive this is the best-possible UIDE /P upgrade, before
> beginning my driver changes.

I have used your other software but haven't used UIDE. However I have just taken the time to revisit your drivers to re-remind myself. All of your code is extremely well structured, self commenting but also well commented, every byte is there for a valid reason code. Still I can understand where you are coming from with regards size, however I think in this instance overhead increases are not as important vs the useful future looking functionality you are adding to UIDE.

If we were discussing XMGR then I would probably say that size is still an important consideration in relation to embedded setups. However as embedded setups are unlikely to use physical IDE drives then I don't see driver size as a problem there. That all said if size over your improved protected mode functionality is still important to someone then I guess someone could revert to using an earlier version of UIDE with the smaller overheads - so perhaps you could include the earlier version in the distribution also; giving people the option to choose?

Hope this feedback helps. Thanks again for your good work.

Jack

E-mail

Fresno, California USA,
06.05.2010, 01:00

@ Arjay
 

My Thanks, Arjay!

> Firstly a personal "thank you" for your continuing to update your good
> work.

My Thanks, Arjay -- as I have noted to Japheth and others, I in fact DO
take "responsibility" for maintaining UIDE and my other drivers, so DOS
will SURVIVE!

> ... If we were discussing XMGR then I would probably say that size is
> still an important consideration in relation to embedded setups ...

I hope my comments about "embedded" addresses/code in the upper-memory
space did not confuse you -- UIDE is meant for ANY type of DOS system,
not just desktops, "embeddeds", etc. Users whose upper-memory is not
contiguous, due to "embedded" I-O addresses, SCSI/USB "ROM BIOS" chips
etc., may need to load UIDE /P in "low" DOS memory, so it can then get
enough memory for its cache tables.

> That all said, if size over your improved protected mode functionality
> is still important to someone, then I guess someone could revert to
> using an earlier version of UIDE ...

Perhaps so. I never save older versions since (A) my Father was a
"packrat" (saved EVERYTHING!) and I do NOT want to be that way, and
(B) I always have a good reason for my updates -- most DO render my
prior drivers "obsolete". In any event, FreeDOS IBiblio has older
XMGR/UIDE/DISK drivers, and users who want them can go there.

> Hope this feedback helps. Thanks again for your good work.

Definitely -- ALL feedback appreciated, and my Thanks to you again!

---
(Account disabled on user's request.)

Arjay

06.05.2010, 01:50

@ Jack
 

My Thanks, Arjay!

> so DOS will SURVIVE!
:-)

> I hope my comments about "embedded" addresses/code in the upper-memory
> space did not confuse you
Maybe a little. More likely is the fact I was actually working on updating an embedded setup when I returned to this PC, saw your post, responded to your post - might explain more why I had embedded systems on the brain so to speak ;)

> -- UIDE is meant for ANY type of DOS system,
Ok, useful to know thanks for clarifying this.

> "packrat" (saved EVERYTHING!) and I do NOT want to be that way, and
I like your thinking as that approach will keeps the distributions simple. As you rightly point out Ibiblio are doing archiving of your drivers anyway.

> Definitely -- ALL feedback appreciated, and my Thanks to you again!
Pleasure.

Zyzzle

05.05.2010, 23:17

@ Jack
 

Need User Comment Re: Possible UIDE /P Changes!

I'm ALL for the proposed change. UIDE is wonderful, and enabling a cache of up to 511 MB on all DOS systems is fantastic, even at the cost of 100-kb of low memory. Having the extra speed improvement on protected-mode systems is a good "bonus". This becomes even more advantageous when we realize that most of these old systems will benefit supremely from a large cache, considering the old and slow hard drives likely to be installed in such systems.

Those who want to use /P will, and those who do not need to will not. I think it would truly be the best of both worlds...

Jack

E-mail

Fresno, California USA,
06.05.2010, 01:09

@ Zyzzle
 

My Thanks, Zyzzle!

> I'm ALL for the proposed change. UIDE is wonderful, and enabling a cache
> of up to 511 MB on all DOS systems is fantastic, even at the cost of 100
> KB of low memory. Having the extra speed improvement on protected-mode
> systems is a good "bonus" ...

My Thanks, Zyzzle! Do note that UIDE now permits up to 4-GIGABYTE caches
on all DOS systems if /P is not specified, by reserving XMS memory for its
cache tables. The changes I am proposing are ONLY for systems which must
use protected-mode. UIDE's 4-GB caching shall remain available for all!

> Those who want to use /P will, and those who do not need to will not. I
> think it would truly be the best of both worlds...

Exactly my intent -- make UIDE work the BEST, either way -- and my Thanks
again!

---
(Account disabled on user's request.)

Jack

E-mail

Fresno, California USA,
07.05.2010, 04:55

@ Jack
 

With Regret, Shall Not Update UIDE /P!

With regret, I have decided not to implement the "memory only" UIDE cache,
for the following reasons --

A) My cache-size calculations were based on 13 bytes of data per 64K cache
block, due to using an "old" (discarded) idea. In fact, UIDE needs 14
bytes per 64K cache block. This means a 125-MB cache will take 32K of
upper/DOS memory, 250-MB will take 59K, and 511-MB will take 116K. In
my opinion, this is getting to be rather excessive!

B) A "memory only" UIDE can gain an extra 10% of speed at best, versus the
current UIDE /P cache, whose binary-search table already uses upper- or
DOS memory, and whose other 12 data bytes per cache block now take XMS.
Thus, the current UIDE /P uses only 20K of upper-memory (not 115K!) for
a 500-MB cache, and using 64K it can go up to a 1900-MB cache!

I would rather NOT "burn up" so much upper/DOS memory for only a 10% speed
improvement v.s. the current UIDE /P driver. CPU and memory chips become
faster and faster, while hard-disk and CD/DVD "access times" have remained
more constant (7200 RPM appears to be the limit for a reliable and "quiet"
hard-disk!). Faster CPU/memory chips will ultimately reduce UIDE's speed
losses when using XMS memory to insignificance. As newer hard-disks also
use 32-MB or 64-MB of "on board" cache, I begin to agree with Japheth that
modern DOS systems using such FAST hardware may NOT need a software cache,
nor in any event such large use of DOS upper-memory merely for "speed"!

So for the moment, UIDE will remain as-is, and users can choose either its
"standard" 4-GB cache with XMS for cache tables, or its slightly-faster /P
cache with a binary-search table in upper/DOS memory and a maximum caching
capacity of up to 1900-MB (not just 511-MB!).

As noted to Japheth in private E-Mail, I apologize to all for being a SLOW
thinker, and I will go on trying to think of BETTER improvements for UIDE!

---
(Account disabled on user's request.)

Arjay

07.05.2010, 21:38

@ Jack
 

With Regret, Shall Not Update UIDE /P!

> As noted to Japheth in private E-Mail, I apologize to all for being a
> SLOW thinker, and I will go on trying to think of BETTER improvements
> for UIDE!

No need to apologize. I think it is good to have improvements which benefit older hardware as well as new hardware. In some situations burning up upper memory might not be such a bad thing. e.g. I have in the past setup dedicated single task real mode DOS PC's where I have had to let upper memory go to waste but would have happily used it for improved disk caching. e.g. my caller logger was real mode and let high mem go to waste as not much mem was needed. I am also aware of a several people with large legacy real mode databases on earlier hardware where some memory is still spare but drives can not be so easily replaced etc. You know the 20 year old PC in the corner type of setups which now have 20 years of data in a large database.

Would it be complex/add too much bloat to implement both methods in UIDE? e.g. /P and /P2 with a similar watch out like you did with the /H options in the readme? Let the end user decide the appropriate method?

Note: I am just thinking about flexibility rather than saying please do this.

Jack

E-mail

Fresno, California USA,
07.05.2010, 22:02

@ Arjay
 

Separate UIDE-M Driver Might Be Better!

> Would it be complex/add too much bloat to implement both methods in UIDE?
> e.g. /P and /P2 with a similar watch out like you did with the /H options
> in the documentation? Let the end user decide which was appropriate?
> Note: I am just thinking about flexibility rather than saying please do
> this.

The initialization logic for UIDE is already quite complex, and it took ME
a few hours (being 5 months "cold" on it!) to remember what I had done.

However a separate UIDE-M driver with "memory only" caching might be a lot
easier for users to understand, since it could eliminate much unneeded and
confusing logic and would be used only in special cases, not as the "main"
UIDE.

As you seem to see value in such a driver, I will look into writing UIDE-M
and my Thanks for this thought, as well!

---
(Account disabled on user's request.)

Arjay

07.05.2010, 22:31
(edited by Arjay, 07.05.2010, 23:10)

@ Jack
 

Separate UIDE-M Driver Might Be Better!

> a separate UIDE-M driver with "memory only" caching
Sounds like a very good plan.

> As you seem to see value in such a driver, I will look into writing UIDE-M
Great - Thank you! I was particularly thinking of several people whom I know are doing important scientific/environmental research using tried and tested hardware and DOS apps. Indeed this discussion has just reminded me that NASA also like 8086's and DOS for storage. Has any of your code been into space yet? :)

> and my Thanks for this thought, as well!
No problem.

Arjay

07.05.2010, 23:07

@ Jack
 

See also private message

> As you seem to see value in such a driver,
Indeed I do and I hope my private message explains more of my future interest.

Back to index page
Thread view  Board view
22632 Postings in 2109 Threads, 402 registered users, 365 users online (0 registered, 365 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum