| 84721 packages online |
|
|
| | | | No screenshot available |
|
This is SmartDisk1.3.1, written by David Le Blanc.
* removed some accidental 2.0 dependent code.
* added command line parameters
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.
*
|
Contents of disk/cache/SmartDisk131.lha PERMSSN UID GID PACKED SIZE RATIO CRC STAMP NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic] 1586 3153 50.3% -lh5- 453d Nov 3 1991 SmartDisk131/ReadMe
[generic] 178 295 60.3% -lh5- eb73 Nov 3 1991 SmartDisk131/lmkfile
[generic] 5463 11276 48.4% -lh5- 0cfa Nov 3 1991 SmartDisk131/SmartDisk
[generic] 5008 15506 32.3% -lh5- 11dc Nov 3 1991 SmartDisk131/SmartDisk.c
---------- ----------- ------- ------- ------ ---------- ------------ -------------
Total 4 files 12235 30230 40.5% Dec 24 1997
|
|
|
|
Page generated in 0.03 seconds |
Aminet © 1992-2024 Urban
Müller and
the Aminet team.
Aminet contact address: <aminetaminet net> |