home *** CD-ROM | disk | FTP | other *** search
/ Shareware Supreme Volume 6 #1 / swsii.zip / swsii / 165 / MEMCACHE.ZIP / CACHE
Text File  |  1989-01-02  |  17KB  |  347 lines

  1.  
  2.                                                         Dave Williams
  3.                                                         PO Box 181
  4.                                                         Jacksonville, AR
  5.                                                         72076-0181 USA
  6.  
  7.  I had seen cache software around before, and indeed had tried some of it, but 
  8. that was back in the days when I was running a PCjr with one floppy and a 360k 
  9. RAMdisk and could ill afford the overhead of caching software. After that, I 
  10. didn't worry much about it as I moved up from the jr to a turbo XT and then to 
  11. a turbo AT. Then I wound up getting involved in several similar discussions on 
  12. DOS buffers and caching on several different boards within a couple of days, 
  13. culmninating in a friend calling me in the middle of the night and babbling 
  14. about how wonderful PC-Tools' cache program was. For some reason, I took all 
  15. this as an omen that maybe I had better take a deeper look into this stuff.
  16. I blew the dust off a box of floppies and scrounged up the following programs,
  17. which I tested that night and the next day. This is the results. I also found 
  18. a couple of articles by Barry Simon and some adware from PC-Kwik that had some 
  19. useful into and threw the whole mess into the archive.
  20.                                                                 Dave
  21.  
  22.  
  23. System:  12mHz AT, 1 wait state, tweaked DMA refresh, 8-bit RAM. Landmark Speed
  24.         12.6mHz. Okidata RLL half height hard disk, OMTI controller, 34 meg.
  25.         Formatted to a 490k C: drive and a 16meg D: and E: drive under PC-DOS
  26.         3.3. 8-bit controller (The RAM and hard drive came from my old XT).
  27.         Golden Bow's VSEEK says 109msec for the hard drive, which is rated
  28.         at 65msec. CoreTest just sneers at it. This is a SLOW drive! I don't
  29.         remember if the interleave is 2 or 3.
  30.          Running IBM PC-DOS 3.3, with my usual assortment of TSRs and device
  31.         drivers. A 240k extended memory VDISK was set up, leaving 144k for
  32.         the cache's use.
  33.  
  34. Testing: Hard disk was optimized with Golden Bow's VOPT before testing. For 
  35.         each test the system was warmbooted with the appropriate number of
  36.         buffers in CONFIG.SYS and the PC-Cache string was REMmed out of the
  37.         autoexec file when required. A public domain program timer called
  38.         TME.EXE was used for time the execution of each repetition. After the
  39.         warmboot, TME was copied to the RAMdisk, which was first on the path.
  40.         No changes were made to the hard drive other than to the CONFIG.SYS
  41.         and autoexec files.
  42.          The DOS 3.3 CHKDSK command was selected as an appropriately disk-
  43.         intensive program. Four reps of CHKDSK and four reps of CHKDSK /V
  44.         were run with each configuration with TME timing execution. PC-Cache
  45.         was interrogated between reps when used; it reported the current hit
  46.         rate on the cached sectors.
  47.          I feel that conditions were adequately controlled during each test.
  48.         COPY \ut\tme.exe f: was always the first command after booting, 
  49.         TME CHKDSK was always the second to prevent preloading the cache
  50.         differently each time. Sitting around waiting for this stuff to run,
  51.         rebooting, running, rebooting..... is enough to drive you crazy.
  52.  
  53.  
  54.  
  55.  
  56. Program: Shareware PC-Kwik by Multisoft
  57.          SPCKWIK  v 2.2
  58.          command line: no parameters used
  59.          SPCKWIK.COM   15395   5-04-88  12:00p
  60.  
  61. cache buffers   command           times             
  62. -----   --      -------   ------------------------- 
  63.  
  64. none    15      chkdsk    2.97   2.91   2.91   2.91
  65.                 chkdsk/v  8.90   8.90   8.90   8.90
  66.  
  67. 209k     3      chkdsk    2.25    .88    .88    .93     duh, forgot to
  68.                 chkdsk/v  7.03   6.98   6.98   6.98     check.
  69.  
  70. 92k      3      chkdsk    2.04    .93    .93    .93     66%  80%  86%  89%
  71.                 chkdsk/v  7.03   7.03   6.98   6.98     91%  92%  93%  94%
  72.  
  73. no disk access after first read, all 7 subsequent reads came right out of the 
  74. cache. This version evidently works; it also stacks up with the best of them.
  75. Definitely worth trying if you didn't want to spend money on caching software 
  76. right at first.
  77.  
  78. limited SPCKWIK to 92k by loading multiple copies of COMMAND.COM to suck up 
  79. space.
  80.  
  81. automatically took 180k, leaving 360k for applications. 
  82.  
  83.  
  84. I downloaded a different version of Shareware PC-Kwik 1.07 from a board a 
  85. thousand miles away from the first and got the same errors. 1.07 evidently 
  86. doesn't work, or doesn't work with DOS 3.3.
  87.  
  88.  
  89. Program: Discache
  90.          Disk-Cache v0.01
  91.          command line: DISCACHE /E:144 /D:D /D:E
  92.                        DISCACHE /M:64 /D:D /D:E
  93.          DISCACHE.EXE 11-12-86  8:29a
  94.          RESPRO 1.2 reported no RAM used
  95.  
  96. Discache reported "error reading drive D" (or E, F, A, or C) when tried. The 
  97. documentation was well-written, there was talk of a distribution disk and no 
  98. shareware notice, so I assume it is a pirated copy. Since it was dated 1986, I 
  99. am assuming it didn't load because it didn't like my DOS 3.3 or the 3.3-
  100. FDISked triple-extended-DOS-partition weird hard disk. It did not install 
  101. anything resident.
  102.  Since the docs specified it would work with conventional, extended, expanded, 
  103. or any combination of them, it looked veeery interesting. Might try loading it 
  104. on a different machine.
  105.  
  106.  
  107.  
  108. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  109.  
  110.  Partway through testing all this stuff, I got my twin 20 meg AT drives back 
  111. online. These had been on-again, off-again due to controller troubles inmy 
  112. 12mHz machine. The drives are CMI drives out of real IBM ATs, with a Western 
  113. Digital 1003-WA2 controller. Low level format was done with Everex Format, 
  114. drive 0 is partitioned into 2 logical drives, a 360k and 1 21 meg, and drive 1 
  115. is one 21 meg. Interestingly, DOS considers both primary partions, then all 
  116. logical partitions. C is on drive 0, D is drive 1, and E is drive 0. The 34 
  117. meg RLL drive that the other testing was done on was backed up with PKARC and 
  118. then restored to the two drives, maintaining the same three logical drives.
  119.  
  120.  Golden Bow's VSEEK reports drive 0 at 43 milliseconds and drive 1 at 38 
  121. milliseconds, both within the rated limits of the docs I have on them. Bear in 
  122. mind that except for being rammed along at twice the bus speed of an AT, this 
  123. is all True Blue hardware.
  124.  
  125.  I had also just downloaded a nifty little utility in the form of 
  126. ILEAVE16.ARC. It checks the interleave of your disk (it reported the 
  127. interleave of 2 I told Everex to use) and lets you format a track with 
  128. different interleaves to see which works the best. The results were:
  129.  
  130.    interleave  msec
  131.         1       40   obviously the WD-1003-WA2 doesn't do buffering
  132.         2       5    <--- optimum interleave (on my system anyway)
  133.         3       8    IBM's standard interleave for the AT
  134.         4       10
  135.         5       13
  136.         6       15
  137.         7       17
  138.  
  139.  Apparently my "look and feel" method of guessing the proper interleave worked 
  140. in this case. Or it was just dumb luck.
  141.  
  142.  
  143.  
  144. none    15      chkdsk          1.87  2.03  1.98  2.03
  145.                 chkdsk/v        7.31  7.30  7.31  7.30
  146.  
  147.  This is considerably faster than the fastest cached tests on the other drive! 
  148. Obviously there ain't no substitute for hardware -- Lightning and Super PC-
  149. Kwik could beat it on multiple reads, but the first repetition is always 
  150. faster with the faster drive.
  151.  
  152. PC-Cache  (extended memory)
  153.  
  154. 144      3      chkdsk          1.87  1.87  1.87  1.86   29%  30%  30%  30%
  155.                 chkdsk/v        7.14  7.19  7.14  7.25   30%  30%  30%  30%
  156.  
  157.  This is interesting too... PC-Cache claims a 30% hitrate, but the access 
  158. times aren't dropped much. Not a lot of results for a 144k cache now. 
  159.  
  160.  
  161. PC-Cache (extended memory)
  162.  
  163. 144     15      chkdsk          2.14  2.30  2.14  2.15   3%   4%   4%   4%
  164.                 chkdsk/v        7.31  7.31  7.30  7.31   3%   3%   3%   3%
  165.  
  166.  Yep, adding more buffers slowed the beast down. The algorithm used by PC-
  167. Cache probably waits for DOS to check its buffers first. That's the only way I 
  168. can account for the abysmally low hitrate. Also notice the tighter time 
  169. groupings on this CMI drive over the Okidata unit used in the other tests.
  170.  
  171.  
  172.  
  173.  At this point, caching doesn't really look worthwhile for the fast hard 
  174. drive. Since PC-Cache is set up to use extended memory for the cache, I 
  175. developed a working hypothesis that perhaps the cache itself isn't much faster 
  176. than the hard drive. The AT has to save everything, switch to protected mode, 
  177. grab a couple of bytes, then do what amounts to a sort of warmboot back into 
  178. real mode. I had noticed that VDISK in extended memory seemed slower than a 
  179. RAMdisk in my old expanded memory card. So for maximum fairness, let's try a 
  180. 144k conventional memory cache with the same software:
  181.  
  182.  
  183. PC-Cache (conventional memory)
  184.  
  185. 144      3      chkdsk          1.87  1.82  1.87  1.87    30% 30% 30% 30%
  186.                 chkdsk/v        7.09  7.09  7.09  7.03    30% 30% 30% 30%
  187.  
  188.  
  189.  Yep, a small performance increase. Nothing to write home about though. Well, 
  190. maybe Lightning can make some numbers like it did on the other drive....
  191.  
  192.  Lightning
  193.  
  194. 144k     3      would not complete boot
  195. 128k     3      would not complete boot
  196. 120k     3      would not complete boot
  197.  
  198. booted off a floppy, then set up for a 64k cache (no TSRs, no nothing, DOS 3.3 
  199. defaults to 15 buffers). Loaded OK, but gave a bunch of "Invalid subdirectory 
  200. entry. Convert to file Y/N?" terror messages. Control-C and reboot out, the 
  201. disk was OK according to CHKDSK afterward. So no real comparison between the 
  202. two programs yet.
  203.  
  204. Message #521.   9-05-88 13:35.34
  205.     From: Tom Currie
  206.       To: James Davis
  207.  Subject: INTERLEAVE
  208.  
  209.  
  210.  
  211. You're certainly right that if the interleave factor is correct to start
  212. with changing it can only hurt access times.  However a lot of hard disks
  213. are running an incorrect interleave.  There are programs that can check
  214. the interleave, but I haven't HEARD of one that will perform reliably in a
  215. multitasking environment  --  every one that I have seen or heard about
  216. specifically directs that it be run without multitasking and generally
  217. without TSRs.  I don't KNOW that it would or wouldn't make any difference.
  218.  
  219. One fact however is that the worst likely interleave is essentially one
  220. level too tight!  If and interleave of 5 is correct, and interleave of 4
  221. is a disaster but an interleave of 6 has only a minor impact.  In my case,
  222. for example, with an ST-238 running in RLL on a 8MHz PC Clone:
  223. INTERLEAVE       REVOLUTIONS           AVERAGE DATA
  224. FACTOR           PER TRACK READ        THROUGHPUT
  225. ---------------------------------------------------------
  226. 1:1                    26                30,706
  227. 2:1                    27                29,562
  228. 3:1                    28                28,522
  229. 4:1                 22 - 26              33,280
  230.  
  231. 5:1                     5               159,744
  232.  
  233. 6:1                     6               133,120
  234. 7:1                     7               114,088
  235. 8:1                     8                99,840
  236.  
  237. Obviously the correct interleave is the best way to go.  On my setup
  238. however you can note that occasionally it succeeds in reading the next
  239. sector at a 4:1 interleave (thus the variation in the revolutions required
  240. to read a full track).
  241.  
  242. Setting the interleave one sector too loose add the disk rotation time of
  243. one sector to the sequential access time.  Setting the interleave one
  244. sector too tight adds one full rotation minus one sector to the sequential
  245. access time.  It is one of those simple situations, the correct interleave
  246. is definately the way to go (as you said), but IF YOU ARE GOING TO MAKE A
  247. MISTAKE it is a lot better to err in favor of being too loose rather than
  248. too tight.
  249.  
  250.  ╔════════════╗
  251.  ║ Tom Currie ║
  252.  ╚════════════╝
  253.  
  254. .ORIGIN: 010/002 - SOFTSTONE BBS * 502-241-4109 * LOUISVILLE KY * CURT EDWARDS
  255.  
  256.                                                                  C
  257. Message #524.   9-08-88 15:21.14  (NO KILL)
  258.     From: David Williams
  259.       To: Scott Cushman
  260.  Subject: INTERLEAVE
  261. ALSO SEE: 519.
  262.  
  263.  The original IBM PCs had some problems writing to the original 10 meg
  264. hard drives - DOS doesn't do much buffering on data, the controller did
  265. none at all, and the hard disk was faster than the machine's CPU.
  266.  An interleave of 1:1 means sectors on the hard disk are written one after
  267. the other, just like on a floppy. Imagine a pizza. You go from one slice
  268. to the adjacent slice. That's 1:1.
  269.  A 2:1 interleave means that you skip every other slice. 1-3-5, etc. As
  270. far as DOS sees, though, they're all still adjacent. The interleave is on
  271. a lower level than DOS. An interleave of 5:1 means 1-5-10, etc.
  272.  The interleave is used to match the data transfer rate of the hard disk
  273. to the transfer rate of the bus. For example, with a 1:1 interleave, most
  274. machines aren't quick enough to read all the sectors in a row. The CPU has
  275. to wait for the second slice to come back around again, magically changing
  276. your 1:1 interleave to an effective 18: (the standard MFM hard disk has 17
  277. sectors).
  278.  Setting the interleave too wide has less of a performance penalty than
  279. setting it too low. Waiting 1 or 2 sectors for the next logical sector is
  280. a lot better than waiting a dozen or more for it to swing back by because
  281. you didn't quite pick it up the first time.
  282.  A program called ILEAVE16.ARC can detect your interleave and then
  283. recommend an optimum interleave for your system. In my case, an interleave
  284. of 1:1 resulted in 40ms to access the next sector. An interleave of 2:1
  285. dropped it to 5ms. 3:1 moved it up to 8, etc.
  286.  The original IBM PCXT interleave was 5 or 6, I forget which. IBM took a
  287. lot of criticism when people found that they could drop the interleave to
  288. 4 and sometimes 3 without problems.... but the original PC ran DOS 2.0,
  289. buffers defaulted to 3, and had 256k. Later ones came with DOS 2.1 or 3.1,
  290. people learned to use buffers in their config.sys file, and usually had
  291. memory upgrades (to make more buffers practical). The original interleave
  292. was pretty well correct for the machines as delivered, though.
  293.  
  294. ■■ Dave Williams ■■ Techno-Geek Extraordinaire ■■ Cruisin' USA on PCP! ■■
  295.  
  296.  
  297.    From: SYSOP
  298.      To: DAVE WILLIAMS
  299. Subject: The Joy Of Spinrite             (Reply to Message #5630)
  300.  
  301. Did I lock out ZOO files?  I'll have to fix that.  I know I locked out
  302. .EXE, .COM, and .BAS files, but may be allowing .EXE files in just
  303. because that's the way Phil likes to distribute PKARC.
  304.  
  305. I've played with caching a bunch, but I'm a bit leery of it at the
  306. moment.  My Maxtor has a built in speaker that gives off messages just
  307. like the encoded beeps of an AT.  Right now I'm getting several "sirens"
  308. per day out of it, and it all started when I began playing around with a
  309. 1M cache in EMS memory.  No, I'm not really superstitious, but I've
  310. disabled that cache and backed up like crazy.  Oh man, if that disk goes
  311. the Night Modulator is going to become a small time backwater BBS again.
  312. Any idea what those sirens mean?  I've been trying to figure it out and
  313. can't, it isn't in the hardware manual for that disk.
  314.  
  315.  
  316. Message #5639   Dated 09-08-88 @ 07:40.  (Logged Section: All)
  317.    From: JEFFREY ZIMMERMAN
  318.      To: SYSOP                           (Received: on 09-08-88 @ 08:37:52)
  319. Subject: The Joy Of Spinrite             (Reply to Message #5589)
  320.  
  321. I'm no expert, by a lonnnnnnnnnnnnng shot, but I suspect that an AT can
  322. handle the processing time a bit faster than an XT.  It's one place
  323. where a faster processer DOES make a difference.  My experience finds a
  324. significantly faster performance withOUT the cache, as long as I keep my
  325. disk tuned.
  326.  
  327. (Where is that memo on Spinrite ... must call those people!)
  328.  
  329.  
  330. Message #5648   Dated 09-08-88 @ 08:43.  (Logged Section: All)
  331.    From: SYSOP
  332.      To: JEFFREY ZIMMERMAN
  333. Subject: The Joy Of Spinrite             (Reply to Message #5639)
  334.  
  335. I've always gotten better performance WITH a cache, but only if it was a
  336. relatively big one.  400K seemed just about right for running the BBS.
  337. A cache can slow you down if it's size and the typical data blocks you
  338. use don't fit well.  Making the cache too big imposes a small average
  339. penalty on all reads while the cache is being searched, but big speed
  340. gains on a high percentage of reads.  Since my hard disk is still making
  341. 'siren' ooises even though I've disabled the EMS cache, I'm forced to
  342. conclude that something else is causing it.  I'm going to call Maxtor
  343. this morning.
  344.  
  345. The phone number for Gibson Research (Spinrite) is (714) 830-2200.
  346.  
  347.