home *** CD-ROM | disk | FTP | other *** search
-
- This is SmartDisk1.3.1, written by David Le Blanc.
-
- It is an '8-Way set associative' cache, with 8 sets, lines of 4 sectors with
- prefetch, and 32 lines. If you under stand cache jargon, then you'd know that
- adds up to:
-
- 32*4*8*512 = 524288 or 512K and sectors are 'prefetched' four at a time.
-
- The frefetch strips time of program loading and directories. It may
- work against you on a heavily fragmented disk, but there is a general
- noticable gain in performance EVEN when the data you want is not in
- the cache.
-
- So, this cache uses 512k, which gets allocated as the cache expands.
- There are a few limitations, but thats only because all parameters are
- hard coded into the source.
-
- | Since you cannot specify the type of drive you have, there are three versions
- | in the archive.
-
- | SmartDisk.xt : Any xt.device user (A590 xt/ide drive)
- | SmartDisk.scsi : Any scsi.device user, (a590 scsi, A2091 etc)
- | SmartDisk.gvpscsi : Any gvpscsi.device user, namely all GVP controllers.
- ^ Obsolete.
-
- Arguments:
-
- SmartDisk <devicename> <unit>
-
- ******** ******** ******** ******** ******** ******** ******** ********
-
- I Must put a note in here to warn users with multiple drives. THIS
- PROGRAM WILL FAIL on a system which uses the same device (eg scsi.device)
- for many physical units. The reason is that it patches the device 'BeginIO'
- vector, effectively catching calls to read ANY unit, but it does not
- internally differentiate amongst different devices. The reason is simple,
- there is not indication of the 'unit' in the IOStdReq structure.
-
- (There is a 'Unit' pointer but that is device private and I'd be stupid
- to depend on it :-)
-
- The effect is that if a read from unit 1 gets cached, the same read to
- unit 0 may grab an entry from the cache which actually came from unit
- 1! (can you spell BOOM!!)
-
- BE WARNED!
-
- ******** ******** ******** ******** ******** ******** ******** ********
-
-
- * SmartDisk 1.3.1
- *
- * Added code to grab device and unit from the command line.
- * Removed 2.0 dependent code which had crept in. (CreateMsgPort() instead of
- * CreatePort() for example)
- *
- * SmartDisk 1.3.
- *
- * Created by David Le Blanc 29/10/91 Absolutely no copywrite. But if you improve
- * it, please send me a new version (with source!)
- *
- * Some performance quotes: (Doesn't everyone make these??)
- * Background: I have a directory called MAN: which has 355 manuals.
- *
- * WARNING: These are bad examples, since a 'dir' reads the disk, then sorts the
- * contents, then writes the data to the screen. These times include the sorting
- * and output of the directory. This sorting and output time is in the order
- * of 1.5 to 2 seconds.
- *
- * Normal DIR MAN: 12 seconds
- * Cache enabled but empty 9 seconds (prefetch does work!)
- * Cache primed 5 seconds.
- *
- * With a slower drive and/or faster machine these times can only improve.
- * I have a drive capable of 800k/sec on my unaccelerated A500. Those with
- * a 150K/sec A590 would notice a greater performance boost. Same for those
- * with 'bloody fast machines' (grumble :) If I was REALLY worried about making
- * the statistic look good, then I'd test it on an A590.
- *
-