home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 9
/
FreshFishVol9-CD2.bin
/
bbs
/
reviews
/
disk.lha
/
disk
/
FastCache
< prev
next >
Wrap
Internet Message Format
|
1993-07-15
|
20KB
Path: menudo.uh.edu!usenet
From: Mike_Noreen@p14.anet.bbs.bad.se (Mike Noreen)
Newsgroups: comp.sys.amiga.reviews
Subject: REVIEW: FastCache version 1.0
Followup-To: comp.sys.amiga.applications
Date: 9 Jul 1993 01:48:04 GMT
Organization: The Amiga Online Review Column - ed. Daniel Barrett
Lines: 475
Sender: amiga-reviews@math.uh.edu (comp.sys.amiga.reviews moderator)
Distribution: world
Message-ID: <21iiok$k1b@menudo.uh.edu>
Reply-To: Mike_Noreen@p14.anet.bbs.bad.se (Mike Noreen)
NNTP-Posting-Host: karazm.math.uh.edu
Keywords: cache, disks, shareware
PRODUCT NAME
FastCache version 1.0
[MODERATOR'S NOTE: This review was updated on July 15, 1993.
-Dan]
BRIEF DESCRIPTION
FastCache is a program for speeding up your disk access. It is a
fully associate shareware disk-cache which features prefetch and write-back.
AUTHOR/COMPANY INFORMATION
Name: Philip D'Ath
Address: 9 Elmwood Crescent
Pukete, Hamilton
New Zealand
E-mail: pid@waikato.ac.nz
SHAREWARE FEE
You may use the program freely for a period of three months. If you
continue to use it after that period, you are requested to send $20 to the
author, payable in either New Zealand, Australian or American dollars.
SPECIAL HARDWARE AND SOFTWARE REQUIREMENTS
HARDWARE
At least 256K free RAM is recommended. FastCache uses RAM
to speed up disk read/write operations, and will not give
much increase in disk performance if the cache is smaller
than this. If you cannot spare this much RAM, then
FastCache probably isn't for you.
FastCache is supplied in two flavours: one for 68000-based
machines such as the Amiga 500, and one for 68030-based
machines such as the Amiga 3000.
SOFTWARE
FastCache was designed to be used under AmigaDOS 2.0, and
seems to work well under AmigaDOS 3.0. It MIGHT work under
AmigaDOS 1.3, but it's not guaranteed.
COPY PROTECTION
None.
MACHINE USED FOR TESTING
Amiga 3000-25
2 MB Chip RAM, 4MB Static Column Fast RAM
Kickstart v40.9, Workbench v40.4
DEC RZ24 hard disk, 199MB formatted, 64KB onboard cache, 19ms seek
time.
REVIEW
The reason I tested FastCache was because I needed to speed up the
handling of mail on my system. I had earlier tested a public domain
disk cache called SmartDisk and had not been terribly impressed. FastCache,
however, had features which made it worth checking out. Here's its feature
list from its manual:
* Fully associate cache (one of the best algorithms)
* LRU cache replacement policy (one of the best)
* Can handle multiple drives
* *Should* be able to handle removable media
* All cache settings are determined at run time
* Optional write retention
* Does not require large continuous chunks of memory
* Uses a hashing system to locate date (one of the best)
* Performs both forward and reverse prefetching
* Will utilize the blitter to move data, if possible
Having gotten this far, I think most people will agree that it is
high time for a short explanation of what a disk cache is, how it works, and
what all these fancy terms and abbreviations mean. (Many thanks to John C.
Chu for helping me out with this!)
WHAT IS A DISK CACHE?
RAM is faster than the disks on your computer. A cache takes
advantage of this fact to speed up read (and sometimes write) operations
that use your disks. Any data read by the computer is stored in the cache,
so that if the data is used again, it is read from the cache (in RAM)
instead of the cached device (the disk).
From the above explanation, note that information is read from the
cache only if it is already IN the cache -- that is, the second (or later)
time that it is read. However, a cache can also speed up the initial read
by using "Prefetch." This takes advantage of the fact that it's faster to
read data in large chunks rather than in little pieces. Prefetch means that
if the computer asks for block N from the hard drive, it is put into the
cache along with a number of subsequent blocks, anticipating their use. So,
when the computer has processed block N, and asks for block N+1, it is
already in the cache. On a fast, unfragmented hard disk, prefetch can give
huge boosts in speed, while on a heavily fragmented disk it can lower
performance.
Some caches, like FastCache, may optionally cache write operations
as well as read operations. While this means less disk contention and faster
writes, it also means that a crash or reset before the cache is flushed will
result in LOSS OF DATA! For this reason, I do not recommend write retention
(write-back). Sooner or later, one IS going to lose data if one uses
write-back, so do *NOT* use write-back on important files. Also, writes to
the disk which are verified (like formatting) will be verified against the
cache, and so is useless. Caching writes is DANGEROUS STUFF!
[MODERATOR'S NOTE: The author of FastCache, Philip D'Ath, says the
following about verifying writes against the cache:
"...you mentioned about programs who try to verify
data essentially wasting their time. This will not be the
case if the program issues any kind of flush command (like
CMD_FLUSH). FastCache honours all such requests, by
flushing its entire cache, for this exact reason.
If any program does a verify operation now, without
issuing a flush command, then it is probably already broken,
as many KS2 devices buffer at least a track already."]
Time to get technical! (Non-technical users can safely skip ahead
to "INSTALLATION" below.) Basically, there are three types of disk caches:
* Direct Map Caches. The most primitive form, easy to implement and
with low processing overhead; but since it is "unintelligent", large
parts of the cache memory will be wasted.
* Set Associative Caches. A set associative cache consists of some
number of small Direct Map caches combined. While being smarter
about memory usage than a Direct Map cache, a Set Associative cache
is less efficient than a Fully Associative cache (described below),
and it requires more processing than a Direct Map cache. Examples
of Set Associative caches are PowerCache and SmartDisk.
* Fully Associative Cache. The best and brightest of the caches.
Will not flush data until completely full; but as it is the most
complex of the caches, it is also the one which requires the most
processing overhead and is the hardest to implement. FastCache is
of this kind.
When the cache is full, it has to flush old data to be able to cache
new, and this can be done in a number of ways. FastCache uses an algorithm
called LRU, Least Recently Used, meaning that the information least recently
accessed is flushed before more recently accessed information.
INSTALLATION
Installation is easy. You simply put the appropriate FastCache
version (68000 or 68030) where you want it, edit its ToolTypes to fit your
system, and double-click on its icon. It's runnable from the shell also,
with arguments instead of ToolTypes. Setting the ToolTypes is no problem if
you know a little about your hard disk; in my case, as on all A3000's, the
device name is "scsi.device" (case sensitive!), and unit number is 6. On
other controllers, you will have to check what your device driver is called
(like GVPscsi.device for GVP controllers), and what unit number your hard
drive is (usually 0).
BENCHMARKS
The wonderful bit about reviewing something like FastCache is that
its performance can be MEASURED OBJECTIVELY! Therefore, you are now going to
be treated to a number of impressive benchmarks, all obtained with DiskSpeed
v4.2. Here is my system with no caching:
MKSoft DiskSpeed 4.2 Copyright - 1989-92 MKSoft Development
------------------------------------------------------------
CPU: 68030 AmigaOS Version: 40.9 Normal Video DMA
Device: dh0: Buffers: 200
Comments: My setup, without any disk cache. Test partition is 52Mb, 40% full.
No CPU Speed Rating -- CPU % not available.
Testing directory manipulation speed.
File Create: 147 files/sec
File Open: 129 files/sec
Directory Scan: 221 files/sec
File Delete: 322 files/sec
Seek/Read: 784 seeks/sec
Testing with a 512 byte, MEM