Eric, My Thanks for your "support" of what you all call "pipelining" (I call it simultaneous I-O) in our discussions with Bernd, in your earlier post today.
>> No one is suggesting an API only for MEM! Also, my ideas about new >> XMS commands are only for 64-GB memory, NOT for current XMS commands > > Ah okay... So there would be a separate API, and separate > memory areas for XMS 2/3 and the new API then? Absolutely! Forgetting XMS V2.0 (only 64-MB), I am suggesting that all XMS V3.0 requests for 4-GB remain as-is, using the first 4-GB of memory. XMS "V4.0" commands, if we choose to call them so, will be modified 3.0 commands to deal with memory ABOVE the first 4-GB. >> ... "Protected mode" moves are done by JEMM386/JEMMEX, since on >> systems that use either driver, only THEY can "trap" and execute >> an "Int 15h AH=87h" move-memory request! > > True - if you have a HIMEMXXL then it will need a way to > communicate with some EMM386 if you want to use both in > parallel. On the other hand, if the access to XMS style > memory beyond 4 GB is implemented in some JEMMEXXL then > it would only have to communicate with itself, as it is > both HIMEM and EMM386 inside the same driver already. If we do an XMS "V4.0" upgrade for 64-GB memory, the "scheme" used by "real mode" and "protected mode" should be consistent for both. This is why I suggest any XMS requests using 64-GB memory address- ing (allocates/locks/moves etc.) must include the "page" number. >> if a driver were to request 64-GB memory BEFORE loading JEMM386 > > Loading drivers BETWEEN HIMEMX and JEMM386 is a somehow > unusual case if my opinion. "IN" your opinion, but in fact I agree with you on this point. >>> In theory, you can allocate a lot of RAM in pieces of 16 MB. >> >> This requires revision of many programs, which are NOT expecting > > True true, yet Windows 3 was so widespread that many drivers > actually do contain workarounds for Win compat ... Still a BIG problem for drivers like UIDE wanting gigabytes of memory. XMS drivers provide at most 128 "handles", and your idea of 16-MB each would take ALL those handles, leaving none for other drivers/programs. > At least in Linux and Windows, a pipeline is something provided by > the OS kernel ... But we are NOT Linux/Windows, are we?? >> UIDE could still have its cache in 64-GB memory if it were changed >> to do all I-O through its "local" 128-KB XMS buffer. That buffer >> would have to stay in 32-bit address space, as SATA/UltraDMA chips >> were designed in the 1994 "32-bit days". > > Interesting. One would assume that SATA/UDMA was more future-proof > than that ;-) Maybe newer controllers can access more than 32 bits of I-O bus, but I am not "holding my breath", and UIDE must still run OLDER controllers! >> Doing all I-O thru its buffer costs a small amount of time in UIDE. >> But if a HUGE cache is needed and a fast-enough CPU for its binary >> searches is present this COULD be made to work > > Yes and no - the metadata of the cache could be kept in the > easily accessible area while the data itself can be copied > with normal XMS driver calls without extra performance loss, > allowing the cache data to stay in non-lockable extra large > XMS above the 4 GB boundary. Of course I wonder why you do > want a cache of 4 GB instead of just using a RAMDISK...? Agreed -- UIDE's cache tables and binary-search table could remain in normal 4-GB memory, along with its "local" 128K XMS buffer (64K data, and 64K for UltraDMA "alignment"). Re: caches and RAMdisks, a cache handles dynamically-changing disk data sectors, via LBA addresses and normally a first-in first-out algorithm. A RAMdisk handles a more permanent set of logical FILES, using a normal DOS directory. Users who want SPECIFIC files always available will want a RAMdisk. Those who want to speed-up "general" sector handling to/from disks will want a cache. Those who want a SCREAMING-fast DOS system will want BOTH! >> I agree -- I ran Win/NT with only 256KB memory for over 10 years, > > 256 MB, probably :-) Wait until YOU are age 63, my friend, and "typos" are a fact of YOUR life, as well! ;) > I remember that life was quite okay with 16, 32, 64, 192 MB > on mixed versions of Windows and Linux for many years indeed. Now you understand my quite-SERIOUS comments about "Do we really NEED all this??" I still say a GOOD 4-GB DOS system can do LOTS of work! > Note: Bernd cannot program anything but Warcraft and BAT afair :-) Be kind -- Bernd contributes much to DOS/FreeDOS/etc. same as we do. >> I would rather NOT be "unsafe" and prefer to "lock" any XMS used >> by a SYSTEM driver AGAINST being re-mapped, moved-around... > > I know I know. My cache also locks memory because it feels bad > to have the data of a disk cache swapped out to a disk... :-p. > That probably also holds for UIDE, now that I think of it... ABBBB-solutely!! >> If XMS "locks" are unusable when running Win/3, maybe it is best >> not to support Win/3... > > No, you just cannot create locks on NEW handles, such which > got allocated after Windows took over memory maintenance. Then I hope UIDE/RDISK or other large-memory drivers DO load first! > Enjoy working on your miracles :-) Thanks, and you on yours ;-) Jack R. Ellis ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user