Jump to content
MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. ×

Smartdrive Revisited: Sata drives in MSdos compatibility mode


deomsh
 Share

Recommended Posts


You're right about the /machine:at key. Speed of Himem is now the same as HimemX on my machine. Thanks a lot.

I tried XMGR again. If loaded after Umbpci and with the /W-switch, speed is the same as the to others. I will explore further. :cool:

Link to comment
Share on other sites

  • 1 month later...

In my Post of Oktober 6, 2018 I stated:

'Highest copy-speeds in WINDOWS (with static 128 MB VCACHE and NO MaxPhysPage!) were:
    -  4 MB/sec. with BUFFERS=20 
    - 17 MB/sec. with SMARTDRV 4096 /B:57344 and BUFFERS=4,0
    -  5 MB/sec. with XHDD.SYS /R25 /S50 /H /O /P and BUFFERS=4,0
    - 22 MB/sec. with XHDD in combination with Smartdrive (4 Buffers)

    In Windows Buffers and XHDD were really slow, Smartdrive performed the same as in MS-DOS.'

In my latest experiments I met following problem: I cannot reproce anymore the slow speeds of BUFFERS only and standalone XHDD inside WINDOWS. 

I did many new tests, with following results.

    Highest copy-speeds in WINDOWS (with static 128 MB VCACHE and no MaxPhysPage):
    -   6 MB/sec. with BUFFERS=20 (DOS=UMB,HIGH,NOAUTO in CONFIG.SYS)
    -   2 MB/sec. with BUFFERSHIGH=20 
    -  14 MB/sec. with standalone XHDD.SYS /R25 /S50 /H /O /P and BUFFERS=4,0

I am using UMBPCI, so shadow-ram on my chipset seems to be slow (BUFFERSHIGH).

The good news I found: copy-speeds with standalone XHDD are ALWAYS 14 MB/sec. (±10%) between ssd's, and 9 MB/sec. with standalone XHDD.SYS /B.
Still slower than standalone Smartdrive, but not so bad.

Maybe worth a try on your 2TB FAT32 SATA-partitions. :lol:

I explored in depth the possibilities of XHHD with XMGR in WINDOWS, first without the use of Smartdrive.
I concentrated on stability regarding the size of the XHDD-cache in combination with Vcache. 

Relevant setup
Asrock 960GM-GS3
AMD FX-6300
4GB DDR3-1600
Geforce 6700XL 128MB PCIe
Windows 98SE with basic updates (SP203dut, USBSP3.5 and NV82.69, DirectX 9.0c and a 16-bits NDIS2-driver (onboard ethernet).

CONFIG.SYS
DOS=HIGH,UMB,NOAUTO
DEVICE=UMBPCI /I=CF00-CFFF /I=D000-DFFF (chipset specific!)
DEVICE=XMGR /W
DEVICE=LOWDMA.SYS
DEVICE=XHDD /R1024 /Sxxx /H /O /P /G
BUFFERS=4,0
.....

AUTOEXEC.BAT
.....
UMBFILL

SYSTEM.INI
[386ENH]
;;MAXPhysPage=40000

IOS.INI
.....
xhdd.sys        ;
uhdd.sys        ;
xmgr.sys        ;
rdisk.com    ;
lowdma.sys    ;
.....

WINDOWS
hsflop.pdr disabled.
DOS-Boxes must be (partly) working or Windows can't 'readout' the ssd's!

Tests
Opening 12 DOS-BOXES, playing MP4 with GOM player, DxDiag, multitasking during copying 500 MB between ssd´s, using all physical memory with Opera TAB's and opening 12 DOS-BOXES afterwards.
Lowest value of MaxFileCache is based on R. Loew's formula: ´1/24 of Windows-RAM at minimum´

Results standalone XHDD
Maximum stable combinations with Static Vcache:
/S469 and MinFileCache=MaxFileCache=43692
/S256 and MinFileCache=MaxFileCache=196608

Maximum stable combinations with Dynamic Vcache:
/S469, MaxFileCache=43692 without MinFileCache entry
/S256, MaxFileCache=196608 without MinFileCache entry

My experiments are suggesting that XHDD´s cache is counting too. There is some sort of trade-off, but non-lineair.

Vcache
It turned out to be possible to set MaxFileCache=43072 as absolute minimum, without a MinFileCache entry.  At this value Vcache is static.

The MinFileCache value set by Windows seems to depend MAINLY on RAM, only a few KB's vary with the value of MaxFileCache.

I did a few quick tests: lowering RAM with the XHDD R-switch.
If Windows ´sees´ 510,0 MB RAM MinFileCache is set to 21192 (21700608 Bytes).
If Windows ´sees´ 255,0 MB RAM MinFileCache is set to 10348 (10596352 Bytes).

With a MaxFileCache=41944 (1/25 of RAM) or lower and no MinFileCache, System Monitor shows a MaxFileCache of 800MB (838860800 byte = 819200KB) and MinFileCache of 42MB (44105728 byte = 43072KB).
This is a corroboration of R. Loews formula: no MinFileCache is set (see picture below). 

1995674004_SysMonR1024S50noMaxFCnoMinFC.jpg.0e518e3861c7151578d477bbd39ec274.jpg
 

As soon I set MinFileCache=256, shown MaxFileCache is the same value as in set in [vcache]. Holds for other values too. 

1148503045_PictureofVcachesectioninSystem_ini2.jpg.2588db5b4ce66c9c68390f300da93fe4.jpg

1027693182_SysMonR1024S50MaxFC41944MinFC256.jpg.d037417075a7d894d9a693114b8f96af.jpg

When there is a MinFileCache in SYSTEM.INI, the value ´set´ is shown by System Monitor.The lowest stable value I found is MinFileCache=256. Now MaxFileCache can be freely chosen, but must be equal or higher than the set MinFileCache value.

Smartdrive Revisited
AT THE CHOSEN VALUE OF RAM (1024MB), in combination with INSTALLHIGH=SMARTDRV 2048 /L /U /V /B:57344 (or LOADHIGH in AUTOEXEC.BAT) results with much more stability are possible, but the sum of XHDD´s cache and Vcache must not exceed 512MB. This time the trade-off seems lineair. 

See Q181862: prescribes lowest value of 512MB or 70% of RAM as maximum Vcache. The text of Q181862 I found in this link: https://www.computerforum.com/threads/autoexec-bat-files.50624/

Maximum stable combinations with Static Vcache:
/S469 and MinFileCache=MaxFileCache=43692
/S50 and MinFileCache=MaxFileCache=473088

Maximum stable combinations with Dynamic Vcache:
/S469, MaxFileCache=43692 without MinFileCache entry
/S256, MaxFileCache=262144 without MinFileCache entry

Lowest value of MaxFileCache can actually set to 43072 (System Monitor's MinFileCache readout).

Copy-speed is highest with /S50 and MinFileCache=MaxFileCache=473088, 26MB/sec.

Ultimate stability
As my system depends heavily on 16-bit drivers, stability is an issue. Especially the 16-bits HDA-driver I am using, can induce lots of instability. 
With my most stable configuration I can listen to music during copying a 500MB file, almost without any disturbances - just like with the Windows protected mode driver (only as long as DOS-Boxes are unused - but depends on video-card).
For 'ultimate stability' Vcache must be set static and really low, MinFileCache=MaxFileCache=1024, and XHDD's cache as high as possible (/S511). Smartdrive cache between 2048 - 4096, a cache of 1024 gives unstable results.

747636727_SystemMonitorGOMPlayingFileInfoplayingmp3.thumb.jpg.27fd50fa334959ad94f7b3ab9748877e.jpg

BTW: lowest value of XHDD-cache I have used is 50MB, minimum is lower, but my version of XHDD Read-Ahead Buffer starts at 50MB - counts in speed!

Newer versions should start at 20 MB. Not tested yet.

Although a much bigger Read-Ahead Buffer would be nice, preferable with variable Buffersize. :whistle:

Edited by deomsh
correcting typing failures & corrections
Link to comment
Share on other sites

 

At last I found time to test SATA in AHCI-mode. I did only about hundred tests, but there are already some result to report.

1) XHDD didn't cache the drives, as was to be expected from the readme.

2) In pure MS-DOS or Windows 98SE I had no stability problems as long as DBLBUFF.SYS was loaded. Once I tried without  DBLBUFF.SYS, the Master Boot Record of one of my SSd's was damaged, I had to repartition the drive!

3) In MS-DOS I found the surprising result that use of secondary buffers (without smartdrive!) actually speeded up copying. :dubbio:

4) In Windows Buffers are doing not much in compatibility mode, but Smartdrive does. Although it makes coping in MS-DOS much slower, Windows gained speed. Even a little bit faster than in MS-DOS.

5) Maximum copy-speed of 500MB between SSD's (Vcache=131072, static):
 

  • MS-DOS; BUFFERS=40,8: 38 MB/sec.
  • MS-DOS; BUFFERS=10,8; INSTALLHIGH=SMARTDRV 2048 /L /U /V /B:57344: 15 MB/sec.
  • WINDOWS; BUFFERS=40,8: 1 MB/sec.
  • WINDOWS; BUFFERS=10,8; INSTALLHIGH=SMARTDRV 2048 /L /U /V /B:57344: 16 MB/sec.

6) Regarding DBLBUFF.SYS: forced use was not needed for stability, and slowed things down.
In MSDOS.SYS Doublebuffer=1 must be set to load  DBLBUFF.SYS (Doublebuffer=2 was not needed). IO.SYS loads DBLBUFF.SYS in case of DOS=AUTO (or omitted).
In case of DOS=NOAUTO in CONFIG.SYS, DEVICE=DBLBUFF.SYS /D is equivalent. Or: DEVICE=SMARTDRV.EXE /Double_Buffer (loads DBLBUFF.SYS too, '.EXE' is needed in Device-statements).

'Forced' double buffering can be set with DEVICE=DBLBUFF.SYS /D+ ; or: DEVICE=SMARTDRV.EXE /Double_Buffer+.


 

Link to comment
Share on other sites

  • 5 months later...
On 12/8/2018 at 12:35 AM, deomsh said:

Newer versions should start at 20 MB. Not tested yet.

I tested XXHD.SYS with read-ahead buffer starting with 20MB cache, standalone (version 2018-16-12). Copying is about 0,5 MB/sec. faster than older version where read-ahead buffer starts with 50MB cache.

In the meantime there are already five newer versions. I could download the last one only: 2019-04-21. Read-ahead buffer should start with 10MB cache. Good News!

Bad News: this version gives big problems with Windows 98se on my system. Booting Windows is not possible, or takes 15 minutes or longer and Drive operations are a problem. The newer versions have different "LBA48/LBA28 I/O opcodes" (according to the Readme). After completely disabling my Big IDE-HDD (500MB), normal booting/ copying is possible again (disabling ESDI_506.PDR made no difference). 

Copying is about 1 MB/sec. faster than older version where read-ahead buffer starts with 50MB cache.

Luckily the 2018-16-12 version is latest of the seven versions on archive.org:

https://web.archive.org/web/20181020053006/http://optimizr.dyndns.org/dos/drivers.html

Edited by deomsh
Typo
Link to comment
Share on other sites

  • 9 months later...

Interesting that certain motherboards support UDMA  in DOS with no DOS device drivers needed, only bios support (this is also common on pci ide controllers like promise 133 etc). I have a 2002 HP intel 815T motherboard that runs UDMA100 in DOS  or PIO mode just depending on what I selected in the bios. I wonder if this can be enabled with other bioses or hacked in so they don't drop back to PIO mode in DOS.

Connecting a SSD to the ide port using a cheap ide to sata adaptor I get 92.5 MB/s in DOS with no smartdrive or XHDD loaded, just himem.sys and mouse drivers. (XHDD loaded slows speed to 34MB/S.)

Using Norton Ghost 11.5.1 in real mode dos, to verify a 24GB spanned image the speed is 5550MB per minute( Ghost shows MB per minute) which is 92.5MB per second.

What is a good dos benchmark program for disk speeds, most are too old when in comes to UDMA speeds and produce unreliable results (like speedsys).

Edited by ricardrosen
Link to comment
Share on other sites

Nice, you're lucky with such a board. But doesn't seem SATA to me, in Windows drives will NOT run in MS-DOS Compatibility Mode.

I took a look to the 815T chipset, P-III isn't it? I found boards that has ICH2-Southbridge with a 100MB burst mode.

I doubt BIOS-hacks are possible (and as far as I know MSFN wouldn't like that on their forum).

In this thread I used copy speeds in MS-DOS as a sort of benchmark to compare with Windows' MS-DOS Compatibility Mode.

I am not aware of good speed-testers in MS-DOS. In all my tests I copied the same 496MB file between two hard disks and recorded the time with my sons stopwatch. :cool:

 

Link to comment
Share on other sites

I am NOT trolling I am just showing my results of revisiting smartdrive for any retro shoppers selections.

I actually went through this thread and did some tinkering and I was smirking the whole time.

My trusty 2002 dual cpu ABIT VP6 system with 1ghz Pentium III's is so much fun to play tinker.

With this threads advice i had a whole 3 days tinkering done. (then i started smirking at my parts box)

Removed the 40gb maxtor diamondmax IDE PATA. off ATA 66mbit onboard socket. (the disk supports up to ATA 133mbit/s) I had that disk since 2002.

Best for pentium 4's i recon that most pentium 4 boards have ATA 133 IDE ports and the marginal improvement of smartdrive tinkering was making me feel glum.

 Plugged in my 4 port SATA II RAID compatible PCI card. (and plugged in my SATA DVD)

This time installing windows 98se on 120gb SSD thats SATA III but runs nicely on SATA II mode with significantly less heat.

Installed windows 98se with memory patch cab from DVD as my SATA II Card likes to take over boot time.

12 minutes later .... COOL! WINDOWS 98SE WITH 2GB RAM .... now for the controller driver and display driver.

My PCI card came with is own windows 98, 98se, AND Millennium drivers so i installed them and set my SSD to removable disk mode.

Its awesome. The mechanical disk replacement and SATA II has significantly lowered boot and program loading times but when it comes to huge files it can take time.

With 2gb low density system ram I have disabled memory paging.

I wish I had this system when it was released but the availability and cheap price Its like getting the sports car from yesterday that''s now cheaper.

So then i load smartdrive with 32mb buffer for windows I don't notice anything and it has a 128gb disk capacity limitation so I won't be using it for my 500gb Mechanical disk as systems 2nd disk (boo hoo)

Got my SATA II controller from ebay under $20AU and being PCI they should work on anything 6x86 or 5x86 that and SSD eliminates any caching needs for win9x.

I have a powerline conditioning pci board that boasts improving system sound quality I have found it has improved every aspect of my systems quality and has saved the motherboards capacitors from bulging. (card is on ebay.)

GPU is an AMD with 128mb ram. I wonder if a 1gb AMD card with HDMI will work off AGP 4X.

If someone can give me a benchmark tool here I will happily post results just so we know what to buy when retro shopping. Windows resource meters are not accurate.

Edited by ZaPbUzZ
Link to comment
Share on other sites

12 hours ago, ZaPbUzZ said:

Got my SATA II controller from ebay under $20AU and being PCI they should work on anything 6x86 or 5x86 that and SSD eliminates any caching needs for win9x.

 

What is the model of the SATAII controller you used.

I found a Dos benchmark program to use:

https://www.japheth.de/Download/DOS/IDECHECK.zip

It's command line and let's you select UDMA mode, PIO etc. Doesn't give a lot of feedback if it fails to run so try with the /S:127 option. On my Promise TX2 150 PCI card  using an SSD it benchmarks in DOS at 65MB/S.

Also tried Smartdrive on a single partitioned 256GB SSD to see what happens on drives bigger than 128GB. Smartdrve loads as normal from the command line but then when it next accesses the drive for anything Dos will freeze.

 

Edited by ricardrosen
Link to comment
Share on other sites

2 hours ago, ricardrosen said:

Also tried Smartdrive on a single partitioned 256GB SSD to see what happens on drives bigger than 128GB. Smartdrve loads as normal from the command line but then when it next accesses the drive for anything Dos will freeze.

 

Edited 2 ho

'Officially' partitions > 128GiB are not supported by Smartdrive.

Did you try the /X switch? This is the Read-caching mode, so no Write-caching. It would be of interest to try loading SMARTDRV /X /B:57344 and than giving DIR /S

Edited by deomsh
Typo
Link to comment
Share on other sites

11 hours ago, ricardrosen said:

What is the model of the SATAII controller you used.

I found a Dos benchmark program to use:

https://www.japheth.de/Download/DOS/IDECHECK.zip

It's command line and let's you select UDMA mode, PIO etc. Doesn't give a lot of feedback if it fails to run so try with the /S:127 option. On my Promise TX2 150 PCI card  using an SSD it benchmarks in DOS at 65MB/S.

Also tried Smartdrive on a single partitioned 256GB SSD to see what happens on drives bigger than 128GB. Smartdrve loads as normal from the command line but then when it next accesses the drive for anything Dos will freeze.

 

here it is https://www.ebay.com/itm/PCI-to-4-Internal-SATA-Port-Combo-Extender-Adapter-RAID-Controller-Card-BT/112562327165?epid=2240730807&hash=item1a353cce7d:g:32UAAOSwm79cwELl

I suggest buy now before they sell out there are up to a dozen other sales there right now but prices vary. It used to sell for $100+ once until sata 3 came along with pcie

I'll have a look at DOS soon i am a bit busy but will be done. Didn't Rudolph L. make a smartdrive app?

Edited by ZaPbUzZ
  • Upvote 1
Link to comment
Share on other sites

9 hours ago, ZaPbUzZ said:

Didn't Rudolph L. make a smartdrive app?

Good question, in the TBPLUS-package there are two SMARTDRV.EXE versions, (30-04-10 and 11-06-18). They are both different from the MS-2000 version.

I will test soon!

  • Like 1
Link to comment
Share on other sites

18 hours ago, deomsh said:

Good question, in the TBPLUS-package there are two SMARTDRV.EXE versions, (30-04-10 and 11-06-18). They are both different from the MS-2000 version.

I will test soon!

That sounds promising! especially if theres no write corruption on 128gb+ disks but since i use SSD to boot system on it'd probably do for the secondary mechanical disk that is like 500gb SATA that'll be the storage. I must say, from win9x to winxp was true disk sleep mode newer never let disks sleep. same with usb storage.

Link to comment
Share on other sites

  • 2 weeks later...
On 4/11/2020 at 8:09 PM, deomsh said:

'Officially' partitions > 128GiB are not supported by Smartdrive.

Did you try the /X switch? This is the Read-caching mode, so no Write-caching. It would be of interest to try loading SMARTDRV /X /B:57344 and than giving DIR /S

I have run more tests and found the cause of the crash. Running Smartdrive /X or any other option makes no difference. This was using DOS7.1 on single 256GB FAT32 primary partition.

What happens is on partitions bigger than 128GiB, any data residing on the drive above the 128GiB boundary 'disappears'  to DOS after Smartdrive is run. The data is not corrupted or deleted, just no longer able to be found on the drive by DOS after Smartdrive is run. When you run a dir command the directories and files that were visible prior to running Smartdrive  have disappeared but DOS still works as normal and every file below 128GiB is visible.

What was causing the crash was when I ran smartdrive from a folder stored above >128GiB. DOS would then freeze because the folder I was in disappears as it is above 128GiB

I checked this by running Smartdrive from a folder below 128GiB (I copied it to the root directory) and it now works as normal but all folders and files residing above 128GiB disappear and are no longer accessible from that DOS session.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...