home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
What the Doctor Required - The Freshest December
/
December.iso
/
cdqcashe
/
cdquick.txt
< prev
next >
Wrap
Text File
|
1995-03-05
|
60KB
|
1,215 lines
C D - Q U I C K
C a c h e
Version 1.10
Program Reference Manual
Copyright (c) 1994-95 by Peter Volpa
All Rights Reserved
_______
____|__ | (R)
--| | |-------------------
| ____|__ | Association of
| | |_| Shareware
|__| o | Professionals
-----| | |---------------------
|___|___| MEMBER
Peter Volpa
Circuit Systems
418 Church Road
Sicklerville, NJ 08081-1727 USA
TABLE OF CONTENTS
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Features . . . . . . . . . . . . . . . . . . . . . . . . . . 2
System Requirements . . . . . . . . . . . . . . . . . . . . 2
License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Ordering Information . . . . . . . . . . . . . . . . . . . . . . 4
Registering CD-QUICK Cache by Credit Card . . . . . . . . . 4
Registering in Europe . . . . . . . . . . . . . . . . . . . 5
Registering via CompuServe . . . . . . . . . . . . . . . . . 5
Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Measuring Existing CD-ROM Performance . . . . . . . . . . . . . . 6
Installing CD-Quick Cache . . . . . . . . . . . . . . . . . . . . 7
UnInstalling the Software . . . . . . . . . . . . . . . . . 7
Choosing a Cache Size . . . . . . . . . . . . . . . . . . . . . . 8
Using Multiple CD-ROM Drives . . . . . . . . . . . . . . . . . . 8
CD-Quick Command Line Parameters Reference . . . . . . . . . . . 9
Memory Usage and CD-Quick . . . . . . . . . . . . . . . . . 11
CD-ROM Drive Performance Testing . . . . . . . . . . . . . . . . 12
Displaying Cache Statistics from DOS . . . . . . . . . . . . 13
Displaying Cache Statistics from Windows . . . . . . . . . . 13
CD-ROM Drive Mechanics and Why CD-Quick Cache Helps . . . . . . . 14
Revision History . . . . . . . . . . . . . . . . . . . . . . . . 15
Appendix A - Error Messages . . . . . . . . . . . . . . . . . . . 16
Appendix B - Common Questions and Answers . . . . . . . . . . . . 18
Appendix C - Comparing CD-Quick to Microsoft's SmartDrive 5.0+ . 19
Appendix D - Distribution Points for CD-Quick Cache . . . . . . . 21 1
Introduction
CD-ROM drives are wonderful pieces of technology. By using optics
instead of magnetics, vast amounts of data can be stored in a small
amount of space on a plastic disc. But as with most technology,
there are always design tradeoffs made. In the case of a data
storage system, the tradeoff is between the amount of data that can
be stored and the speed with which you can access that data. Even
with quadruple speed CD-ROM drives, the average time it takes to
reposition a drive's read head to a new location and start reading
data is at least a couple of HUNDRED milliseconds. Compare that
with the under 15 millisecond access times of today's hard drives.
Due to the nature of CD-ROM drive mechanics, this situation will not
be changing any time soon. In a word, CD-ROM drives are slow.
Data caching has been used for years to speed up the performance of
magnetic disk drives. Caching is a memory management technique that
reads and stores frequently used data in a memory buffer for fast
access. With caching, every time you request data from your drive,
this data is also placed in a memory buffer. The next time the data
is needed it can be found in RAM, so actual disk reads are saved.
This results in a tremendous increase in performance. Until re-
cently, effective CD-ROM caching has been unavailable.
Presenting CD-Quick Cache
CD-Quick Cache will dramatically improve the performance of your
CD-ROM drive. By storing frequently read data in fast extended
(XMS) memory, disc reads are almost instantaneous. CD-Quick uses an
intelligent caching algorithm and dynamic read-ahead buffering to
insure top performance.
CD-Quick is compatible with virtually all CD-ROM hardware and
software. It will work with CD-ROM applications that require a DOS
drive letter as well as with software that bypass the Microsoft CD-
ROM Extensions (MSCDEX.EXE) and access the CD-ROM device driver
directly. The software will also work seamlessly with Microsoft
Windows and will not conflict with any hard disk caching software.
CD-Quick will operate with up to 26 CD-ROM drives (the DOS maximum
for drive letters).
Included with CD-Quick Cache are two CD-ROM utilities, CDTEST and
QUICKMON. CDTEST will evaluate the performance of your CD-ROM
system by measuring the time it takes to walk through a CD's direc-
tory structure and read data. You can run this test with or without
CD-Quick installed to benchmark your CD-ROM drive's performance.
QUICKMON is a Microsoft Windows application that will give you
statistical information on CD-ROM and CD-Quick Cache reads. This
utility will show the total reads requested by your application, how
many reads CD-Quick has saved and what this percentage was. 2
CD-Quick loads as a terminate and stay resident program (TSR). On
most systems, the program will use only 11K of conventional memory.
This is usually comparable to the typical amount of memory used for
MSCDEX buffers. With CD-Quick loaded, these buffers can be reduced.
The result in most cases, is almost the same amount of memory is
used with CD-Quick as without it. Under DOS 5+, CD-Quick may be
loaded "high".
Features:
* Can use up to 10MB of extended (XMS) memory for a CD-ROM
cache.
* Easily handles multiple CD-ROM drives.
* Uses only 11K of conventional memory and can be loaded
"high".
* Uses an intelligent caching algorithm to keep the most
frequently read data in the cache and a dynamic read-ahead
strategy to anticipate and read the data that needs to be
read next.
System Requirements:
* An IBM or compatible computer with an 80286 or higher
processor and a minimum of 384KB extended (XMS) memory.
* At least one CD-ROM drive.
* PC or MS-DOS 3.1 or later.
* Any standard XMS memory manager such as MS-DOS HIMEM.SYS,
386MAX by Qualitas or Quarterdeck's QEMM-386. 3
License
CD-QUICK Cache is distributed as "shareware". It is NOT public
domain or free software.
Non-registered users of this software are given the opportunity to
evaluate the complete CD-QUICK Cache software package for 30 days
with no obligation. If, after the evaluation period, you find
CD-QUICK to be suitable for your needs, you must register your copy
or discontinue using CD-QUICK.
What we're saying is if you use this program, then you should pay
for your copy. That way Circuit Systems will be able to provide
updates, support, and generally stay in business.
When you register CD-QUICK you will receive a personal KeyCode and
the latest version of all the software that comprises the CD-Quick
package. Your KeyCode will disable the opening shareware screen and
may be used with all future versions of CD-Quick. This means once
you've registered, you're registered for life. You may use any new
versions of CD-Quick Cache as they become available free of charge.
Your KeyCode is derived from your name and may not be distributed in
any manner. CD-Quick Cache is LICENSED TO THE SINGLE PERSON WHO
REGISTERED THE PROGRAM.
All users are granted a limited license to copy the UNREGISTERED
version (this means everything except your KeyCode) of CD-Quick
Cache for the trial use of others. Please feel free to give copies
of CD-Quick to your friends and associates. That's what shareware
is about.
This license does NOT include distribution or copying of this
software:
* In conjunction with any other product or service.
* In general use within a company or school.
* For any "disk fee" other than a small (generally $2.00 to
$5.00) copying charge.
* For distribution in any modified form. The file contain-
ing this license information MUST be included along with
full documentation and all the files that make up this
software package.
The data record in the included VENDINFO.DIZ file contains detailed
license information governing distribution. 4
Ordering Information
A CD-Quick Cache registration licenses you to use the product on a
regular basis. Registration also entitles you to lifetime technical
support and allows you free use of all future versions of CD-Quick
Cache.
An individual registration costs $29. Upon receipt of your paid
registration form, we will send you the latest registered version of
CD-Quick Cache with full documentation on the disk. New Jersey
residents should include 6% sales tax.
Site licensing is also available. Prices are based on the estimated
number of users. Please write for more information.
A CD-Quick Cache registration form is included in the distribution
package for your convenience. You may print an order form when CD-
Quick loads by answering "Yes" when asked. You may also print the
file ORDERFRM.TXT anytime. Please take time to fill this out and
return it. If you would like high-quality software to continue to
be made available on a try-first basis and for a reasonable cost, it
is up to YOU to support such programs.
Please send your registration form, suggestions and any
comments that you might have to:
Peter Volpa or For questions only,
Circuit Systems no orders. Call
418 Church Road (609) 875-5433
Sicklerville, NJ 08081-1727 12 - 8 PM EST
Questions may also be sent by Email on CompuServe to 72202,3043 or
via the Internet at '72202.3043@compuserve.com'.
Registering CD-QUICK Cache by Credit Card
We have established a special arrangement with the Public (software)
Library for those of you who wish to order by credit card. For
credit card orders only, you can order from PsL with your Master
Card, Visa, AmEx or Discover card by calling 800-242-4PsL (from
overseas: 713-524-6394). You may also FAX to 713-524-6398 or
CompuServe to 71355,470 or mail to PsL, P.O. Box 35705, Houston, TX
77235-5705. THESE NUMBERS ARE FOR ORDERING ONLY. Circuit Systems
can NOT be reached at those numbers. To contact Circuit Systems for
information about dealer pricing, volume discounts, site licensing,
the status of shipment of the product, the latest version number or
for technical information, please call Circuit Systems at 609-
875-5433 or write to Circuit Systems, 418 Church Road, Sicklerville
NJ 08081-1727 USA. PsL's order number for CD-QUICK is #11726.
PsL's office hours for phone orders are 7AM-6PM CST Monday-Thursday
and 7AM-12:30PM CST on Fridays. Please give your name exactly as it
appears on your card and the billing address for the card. 5
Registering in Europe
If you live in Europe, you may also order CD-Quick from Computer
Solutions Software GmbH in Germany. Please use the order form
EURORDER.TXT when you order from Computer Solutions.
Registering via CompuServe
If you are a CompuServe member, you can register CD-Quick Cache
online. CD-Quick's registration fee will be included in your
monthly CompuServe bill. After you logon, just type 'GO SWREG' for
CompuServe's shareware registration service. CD-Quick's registra-
tion number is #4214.
DISCLAIMER
ALTHOUGH WE HAVE EXTENSIVELY TESTED CD-QUICK CACHE AND BELIEVE IT
WILL PERFORM AS DESCRIBED IF USED CORRECTLY, WE SUPPLY THIS PROGRAM
AS IS. CIRCUIT SYSTEMS DISCLAIMS ALL WARRANTIES, EXPRESSED OR
IMPLIED, THAT THIS PROGRAM IS FIT FOR ANY PURPOSE. CIRCUIT SYSTEMS
ALSO ASSUMES NO LIABILITY FOR ANY DAMAGES EITHER DIRECT OR CONSE-
QUENTIAL, WHICH MAY RESULT FROM THE USE OF THIS PROGRAM.
Trademarks
MS-DOS is a registered trademark and Windows is a trademark of
Microsoft Corporation.
386MAX is a registered trademark of Qualitas, Inc.
QEMM-386 is a registered trademark of Quarterdeck Office Systems,
Inc.
PC-DOS, PC/AT, PC/XT, and PS/2 are registered trademarks of
IBM Corporation.
Association of Shareware Professionals
This program is produced by a member of the Association of Shareware
Professionals (ASP). ASP wants to make sure that the shareware
principle works for you. If you are unable to resolve a share-
ware-related problem with an ASP member by contacting the member
directly, ASP may be able to help. The ASP Ombudsman can help you
resolve a dispute or problem with an ASP member, but does not
provide technical support for members' products. Please write to
the ASP Ombudsman at 545 Grover Road, Muskegon MI 49442-9427 or send
a Compuserve message via CompuServe Mail to ASP Ombudsman
70007,3536. The OMB may be contacted by FAX by sending to the ASP
FAX number: (616) 788-2765. In communication with the OMB please
include a telephone number and/or FAX if available. 6
Before You Begin
The very first thing that you should do before going any further is
to make a backup copy of your distribution disk. To do this just
use the DOS command DISKCOPY. This will work whether or not you
have two floppy disk drives. It also doesn't matter if the diskette
you want to copy to is formatted or not. DISKCOPY will format it
for you.
From the DOS prompt type this:
DISKCOPY A: A:
You will be asked to "Insert source diskette in drive A:". This
should be your original CD-Quick Cache disk. Continue to follow the
directions on the screen and you will have your backup copy.
Measuring Existing CD-ROM Performance
Before actually installing CD-Quick Cache you may want to use the
included CDTEST utility to evaluate your CD-ROM drive's performance
without a cache installed. To run CDTEST with your backup disk in
drive A:, just type A:CDTEST. Since different CD-ROM's contain
differing file layouts (some have many files in a few subdirectories
while others have fewer files in many subdirectories) it may be
helpful to have a few CD-ROM's to test with.
You must have MSCDEX.EXE loaded to run CDTEST (most systems are set
up to load this automatically). If you are running Microsoft
Windows in Enhanced mode you should exit Windows and return to DOS
for this test. Window's Enhanced mode multi-tasking prevents
accurate timing results.
If you have more than one CD-ROM drive, you can select which drive
to test. When comparing the performance of one drive to another, be
sure you test with the same CD-ROM in each drive.
With a CD-ROM in your drive, select the "Walk directories" test.
This test will scan the entire CD-ROM searching for the largest
file. When it finishes the scan, it reports the time taken.
Next select "Do read test". This test will read the largest file
found (must be a least 2MB) first sequentially and then randomly.
The test will be repeated three times. Individual and total times
will be reported.
You should now print your results to enable you to compare this
performance to your system's performance with CD-Quick installed.
It's also possible to test your CD-ROM drive's performance without a
cache even with CD-Quick installed. Use the '/OFF' option on CD-
Quick to disable the cache. You can use the '/ON' option to enable
it again. 7
Installing CD-Quick Cache
CD-Quick Cache includes an Install program to make installation very
easy. The Install program can be used to install CD-Quick on your
computer and configure it for caching CD-ROM data. Install can also
be used to update a previous CD-Quick configuration.
When you start Install, you will first be asked for the source
(where the CD-Quick files are now) and destination (where you want
CD-Quick to be copied to) drives and path.
When this information is provided the Install program will create a
subdirectory on your hard drive called "\CDQUICK". The default
"from" drive is the drive where INSTALL.EXE is located and the
default "to" drive is drive C:. These may be changed to any other
drives or directories as needed. Install will copy all the needed
CD-Quick Cache files from your floppy drive to that subdirectory.
Next you will be asked if you want CD-Quick to determine the amount
of memory to use for data caching or if you would rather assign this
yourself.
Install will scan your AUTOEXEC.BAT file looking for at least one
line containing MSCDEX.EXE, the Microsoft CD-ROM Extensions. If
found, the command to load CD-Quick will be added to your
AUTOEXEC.BAT file. A backup of your unmodified AUTOEXEC.BAT file
will be saved in the file AUTOEXEC.CDQ. The number of buffers
MSCDEX uses will be lowered to 6.
To run the install program, insert your backup copy of CD-Quick
Cache into your floppy drive and type:
A:INSTALL
Follow the directions and before you know it, you will have CD-Quick
Cache installed, speeding up your CD-ROM drive. If your memory
manager includes software to optimize upper memory use, you may want
to rerun it after CD-Quick has been installed.
If you are using the Install program to upgrade your software, an
option has been added to prompt you for your Name and KeyCode. Just
start Install with the '/R' switch. e.g. INSTALL /R
Running CD-Quick with Microsoft's SmartDrive
CD-Quick Cache will run just fine with SmartDrive. If you have
SmartDrive version 5.0 or later (included with MS-DOS v6.2), you
need to add the '/U' switch when loading SmartDrive. This turns off
SmartDrive's CD-ROM caching. If you used CD-Quick's Install pro-
gram, this will be done for you automatically.
UnInstalling the Software
If for any reason you want to return your system to the way it was
before you installed CD-Quick, just use the DOS COPY command to copy
AUTOEXEC.CDQ to AUTOEXEC.BAT. Then delete the CD-Quick files. 8
Choosing a Cache Size
With CD-Quick and its install program it's possible to automatically
determine a cache size. The amount of XMS memory allocated for the
cache depends on the amount of free XMS memory in your system when
CD-Quick loads. If you let CD-Quick choose the amount of memory,
the following guide will be used.
If your system has: CD-Quick will:
<= 512KB free - Use all available XMS memory
<= 1MB free - Use 512KB for the cache
<= 2MB free - Use 1MB for the cache
> 2MB free - Use 2MB for the cache
You may also decide to set the cache size yourself. In setting a
cache size, you should realize that larger cache sizes will increase
performance because more data is available. With the cache holding
more data, the chances of finding the data you need increase and the
much slower reads of your CD-ROM drive are avoided.
You should keep in mind that the amount of memory you allocate to
CD-Quick must be balanced against the needs of other applications in
your system. It's possible to improve the performance of the cache
but slow down an application that runs faster with more memory. The
statistics that CD-Quick provides may be helpful in selecting a
cache size and optimizing overall performance.
If you have problems running certain applications when CD-Quick is
loaded and they go away when CD-Quick is not loaded, it's due to the
way you have your memory apportioned. The memory you have allocated
to CD-Quick is no longer available to other application. You can
reduce your cache size by setting it manually. Please see appendix
B for more information.
Using Multiple CD-ROM Drives
There are two methods used to support multiple CD-ROM drives. The
first setup uses a single hardware device driver for all CD-ROMs.
Each drive is assigned a separate "unit" number. This scheme is
almost always used with multiple SCSI CD-ROM drives. All drives are
connected to a single SCSI controller and the hardware device driver
works with this controller. If you use only one hardware device
driver, a single loading of CD-Quick will cache all drives. CD-
Quick is aware of the separate unit numbers and will behave accord-
ingly. The hardware device driver is loaded by a line in your
CONFIG.SYS file. Check your instructions that came with your CD-ROM
drive if you need more information on this.
The second method used with multiple drives, is to load a separate
hardware device driver for each drive. This is usually needed when
each drive uses a proprietary interface and each is from a different
manufacturer. For multiple device drivers, CD-Quick must be loaded
once for each device driver. If you use the included Install
program, either case will be handled automatically. 9
CD-Quick Command Line Parameters Reference
If you don't use the supplied Install program to automatically
modify your AUTOEXEC.BAT file, and for general reference, we will
describe how CD-Quick is installed.
As previously mentioned, CD-Quick Cache is a TSR. Its only require-
ment is that it must be loaded before MSCDEX.EXE (Microsoft CD-ROM
Extensions). When loaded, CD-Quick is positioned between your CD-
ROM's hardware device driver and MSCDEX. MSCDEX interacts with CD-
Quick instead of your device driver.
CD-Quick allows you to set a few parameters when it loads. The only
one required in order to load is the name of your CD-ROM hardware
device driver. The others are optional. All parameters may be
specified in any order.
CD-Quick command line format:
CDQ [/D:<drivername>] [cachesize] [/F] [/NAME=<username>]
[/KEY=<code>] [/NOHMA] [/ON] [/OFF] [/HELP] [/?]
/D:<drivername>
This parameter tells CD-Quick the name of your CD-ROM's hardware
device driver and is required for CD-Quick to work. The hardware
device driver is loaded by a line in your CONFIG.SYS file. It will
look something like:
DEVICE=CDROMDRV.SYS /D:MSCD001
Since this driver is supplied by the manufacturer of your CD-ROM
drive, its name will vary. The thing to look for is the driver name
parameter used when loading MSCDEX. The Microsoft CD-ROM Extensions
require the same parameter in the same form as CD-Quick. So if you
have:
MSCDEX /D:MSCD001
in your AUTOEXEC.BAT file, you know you need the following line
(before MSCDEX) in order to load CD-Quick:
CDQ /D:MSCD001
Cachesize
This parameter sets the amount of memory allocated to CD-Quick's
data cache. It is just the number in "KB" (Kilobytes) that you
want CD-Quick to use. If you set Cachesize to zero or omit it, CD-
Quick will determine its cache size itself based on the amount of
free XMS memory in your system. As an example, for a 1024K (1MB
cache), you would have:
CDQ 1024 10
/F
After CD-Quick is installed, you can use the '/F' switch to flush
the cache for all CD-ROM drives. Normally CD-Quick will do this
automatically when needed. This option has been added for those
people who have old CD-ROM drives that may not properly report disc
changes. With this "flush" option you can manually clear the cache
yourself if needed.
/NAME=<username>
This parameter is for people who have registered CD-Quick. When
you register you will receive a KeyCode that is derived from your
name. This parameter is needed so CD-Quick can compare your
KeyCode to your name. If they match, the opening shareware screen
will not be displayed. Any spaces in your name should be replaced
by underscores. Case is not important.
/KEY=<keycode>
This is the companion parameter used with "/NAME=" which was just
described. Registered users receive a 4 digit hexadecimal number
to supply as your KeyCode. For an example, if your name is John
Smith and your KeyCode is 5A27, you should have:
CDQ /NAME=JOHN_SMITH /KEY=5A27
/NOHMA
If you are using DOS v5.0+, and you have DOS loaded in the High
Memory Area (HMA), CD-Quick will attempt to use any free HMA memory
to store its cache index. There are a few other programs that can
also use free memory in the HMA. This switch allows you to disable
CD-Quick's use of the HMA and make more of it available to other
applications. The cache index will be allocated in conventional
memory instead. This option should rarely be needed.
/ON
After CD-Quick is installed, it's possible to turn the cache on and
off. The default when loaded is on. If you've previously turned
it off, this option will re-enable it.
/OFF
As mentioned, it's possible to turn CD-Quick's caching on and off.
This switch will disable caching for all CD-ROM drives.
/HELP or /?
Gives a brief summary of CD-Quick's command line options. 11
An Example Please
As an example of all of this, let's assume you have in your
AUTOEXEC.BAT file the line:
MSCDEX /D:MSCD001
You want to use 2048KB (2MB) of XMS memory for a data cache. You
have registered your copy of CD-Quick Cache (thank you!) and your
name is Jack Sprat. Your KeyCode is '83C9'. You would add this
line to your AUTOEXEC.BAT file before MSCDEX:
CDQ /D:MSCD001 2048 /NAME=JACK_SPRAT /KEY=83C9
Memory Usage and CD-Quick
To get the most out of both your computer and CD-Quick, it may be
helpful to know a little about how CD-Quick uses memory. CD-Quick
uses three different blocks of memory when it's loaded. The first
block contains the actual program and is 11K in size. CD-Quick
discards all of its start up code and data when it goes resident.
The 11K remaining is only the code for the cache itself.
The next and probably most obvious block is in extended (XMS)
memory. This area is used to store the data from your CD-ROM.
CD-Quick uses a cache index to locate the correct block of XMS
memory when it's needed. This index can be located in the High
Memory Area, Upper Memory Area or in conventional memory. CD-Quick
needs approximately 6KB of cache index for each 1MB of XMS cache.
This cache index will be allocated in the HMA if DOS is loaded high
and there is enough room. If the HMA can't be used, the Upper
Memory Area is tried next and finally conventional memory. The HMA
is the best place for this data. There is usually about 20KB of
free memory in this area and very few programs can use it. It's
not easy to see the amount of free HMA memory. DOS v6.2 has a
barely documented switch on the MEM command to display it however.
You can type:
MEM /a
to list the amount of free memory in the HMA.
Reducing MSCDEX Buffers With CD-Quick
As mentioned in the Install section, the buffers normally used with
MSCDEX should be reduced with CD-Quick. With most CD-ROMs these
buffers waste memory and do not improve performance. There are a
few CDs that benefit from having a few buffers set. The optimum
number of buffers to use with CD-Quick is 6. More than this gives
no benefit. You may even want to set this lower. However, 4 is
the minimum you can set. Keep in mind that each MSCDEX buffer uses
2KB of memory.
INSTALL will make the proper change for you, but if you don't use
the Install program, add "/M:6" to MSCDEX. 12
CD-ROM Drive Performance Testing
It's always helpful, when you're doing things to increase the
performance of your system, to have some way of quantifying this
improvement. To make this easier, and to show the effectiveness of
CD-Quick, we have included a testing utility called CDTEST.
CDTEST will perform two timed tasks on a CD-ROM. The first test
will walk the directory structure of your CD-ROM. By walking the
directory structure, we mean this test will visit every subdirec-
tory and look at each file. As it's doing that, it will search for
the largest file on your CD-ROM.
CD-ROM's differ in the number of subdirectories and also in the way
these are laid out. Some CD-ROM's have very few if any subdirec-
tories and only a few very large files. This type of CD won't give
you very meaningful results for this test. With so few files and
directories, it only takes a fraction of a second to read them all.
A CD-ROM that has many subdirectories and files is what you need
for this test. If CDTEST finds you have too few directories and
files, it displays a message warning of this fact.
Since the way CD-ROM's are laid out varies from CD to CD, it's best
to have a few CD-ROM's to use when testing. Some CD's will have
all their subdirectories in the root directory. Others will have a
real tree structure with many levels of subdirectories. With CD-
Quick loaded, you will notice varying degrees of improvement
(depending on file layout) when doing a directory walk.
The second test CDTEST can perform is a read test. The program
will read the largest file on your CD-ROM (found while doing the
directory walk). This file is first read sequentially and then
randomly. For the sequential read, 256 blocks are read from the
beginning of the file. Each block on a CD-ROM is 2048 bytes (2KB),
so the test reads 512KB. A CD-ROM block is the same thing as a
sector. CDTEST will display the time it takes to do this read.
Next a random read will read 128 blocks (256KB) from the same file.
These blocks will be scattered all over the CD. Since it's impor-
tant for the random test to access data that is widely dispersed,
the file to be read must be at least 2MB in size. Actually it
should be as large as possible. As with the sequential read test,
the time taken will be reported.
These read tests are repeated for three trials. Each time the same
data is read and the time reported. After the three tests are
completed, the total time taken is also displayed.
With CD-Quick loaded, you will notice a dramatic difference between
the first read test and the following tests. For the first test,
the CD-ROM must be read directly. When it's time to read the data
again, the cache can quickly find the data in memory. It should be
noted that since the total amount of data read is 768KB, you must
have at least that much RAM allocated to the cache for this test.
Otherwise the cache will not be large enough to hold all the data
and your CD-ROM will have to be read directly. Remember, direct
reads are slow. Cache reads are FAST! 13
Displaying Cache Statistics from DOS
CD-Quick has the ability to display cache statistics. This is
another way to get a feel for the improvement CD-Quick provides.
Anytime after CD-Quick is loaded, you can type CDQ from the DOS
prompt to display status information.
Displayed will be:
Cache size, type and drive, Logical transfers (the total number of
2048 byte blocks requested), Physical transfers (the total number
of blocks that had to be read from the CD-ROM), Transfers saved
(the total number of blocks read from the cache), and Percent saved
(the percent of cache transfers vs. physical transfers).
A sample might look like this:
CD-QUICK Cache, v1.10 Copyright (c) 1994-95 by Peter Volpa, Circuit
Systems
Using 1024K XMS cache for drive E:
1411 Logical transfers
659 Physical transfers
752 Transfers saved
53 percent saved.
Because of CD-Quick's read-ahead buffering, your actual time
savings will almost always be better than what is represented here.
With read-ahead buffering, CD-Quick will read more data than is
requested, saving all of it in the cache. When that data is later
requested (and your CD-ROM's read head is usually somewhere else)
this data will be retrieved from RAM. Performance is improved
because the drive didn't have to reposition its read head. Unfor-
tunately the numbers can't reflect this action. Transfers weren't
saved because data was requested only once and read from the CD
only once, but TIME was saved because the drive head didn't have to
move. Any time you avoid moving the drive head you save time.
Displaying Cache Statistics from Windows
Also included with CD-Quick is a status utility that runs under
Microsoft Windows. This utility called QUICKMON, is located in the
same directory as CD-Quick. QUICKMON will display the same status
information as CDQ will under DOS, but all information will be
displayed in a small pop-up window. This allows you to view cache
operation in real time. As you're using an application to access
your CD-ROM, you'll see the cache statistics as they update! You
can also flush and enable/disable the cache from here. QUICKMON is
initially set to be "Always on top" so it can easily be seen. This
operation can be changed by a choice on its pull down menu.
You can use Windows' File Manager to start QUICKMON. Just change
to the "\CDQUICK" subdirectory and double-click on QUICKMON. To
make operation easier, you may want to add QUICKMON to one of your
Windows program groups.
The same attention to CD-Quick's read-ahead buffering applies when
interpreting QUICKMON's statistics. Refer to the section above. 14
CD-ROM Drive Mechanics and Why CD-Quick Cache Helps
For those of you who are interested, I'd like to give you a brief
explanation of the inner workings of CD-ROM drives. After you
understand some of what goes on behind the scenes you'll see why a
CD-ROM cache is really a necessity with today's computers.
Data on a CD-ROM is recorded in equal length sectors on a single
spiral track that starts at the inner edge of the disc and finishes
at the outer edge. This track is on the order of .6 microns wide,
with a turn spacing of 1.6 microns. A micron, if you don't happen
to remember, is equal to a millionth of a meter. A human hair is
about 100 microns in diameter. A CD-ROM has a track density of
about 16,000 turns per inch if you measured across the disc. If
you stretched this track out into a straight line it would measure
over 3 miles in length!
A drive's read head assembly consists of a solid state laser,
lenses, a beam splitting mirror and a photo diode to detect the
reflected light. In relative terms this assembly is massive. The
magnetic heads used in hard disk drives are tiny by comparison.
CD-ROM drives utilize a principle called constant linear velocity
(CLV). With CLV the data must pass across the read head at the
same speed, no matter where on the disc it is positioned. Because
data sectors on the outer and inner edges are the same length, the
rotational speed of the disc must constantly change as the read
head changes position. If it didn't, the bits on the outer edge of
the disk would pass by almost 3 times faster than those near the
center.
So to summarize the mechanical problem we face, we must precisely
follow a very narrow track of data using a relatively massive laser
assembly. At the same time we must constantly vary the rotational
speed of the disc so the data passes at a constant linear speed
when we move the read head. And we want to be able to reposition
this read head and be ready to access new data as quickly as
possible.
As you can imagine, it's just not possible to do this very quickly.
The more mass something has, the slower you can whip it around. If
in addition, you have to position it with sub-micron accuracy, this
takes more time. And if you also have to readjust to a new rota-
tional speed, you need more time still.
This is why CD-ROM access times are slow and it's not going to
change any time soon. Although triple and quadruple speed drives
have increased the raw data rate (by increasing the rotational
speed), access times have not dropped proportionally.
The key to speeding up CD-ROM performance is to minimize the number
of times we reposition the read head. Because every time we move
this head, we waste time. The way to reduce head movement is to
use a cache like CD-Quick. Once data is read into the cache, it
will be accessed from RAM instead of the CD. If we can anticipate
data to read when we are positioned at this data, we can minimize
head movement. CD-Quick uses advanced caching techniques to help
ensure that the data you need most will be found in the cache. 15
Revision History
Version 1.10 - 3/6/95
Now smaller and even faster! All start up code and data are now
discarded before going resident. This reduces the resident program
size to 11KB. The data for the cache index has been separated from
the program and will use the HMA if available. The cache search
routine has been improved to speed lookups, increasing cache
throughput. Added flush and enable/disable options to CDQ and
QuickMon. Added help option to CDQ. QuickMon was unable to start
up minimized. Fixed. No longer supports locating the cache data
in upper memory.
Version 1.02 - 1/18/95
In the opening shareware screen, if you choose to print an order
form and your printer is offline CD-Quick will wait for the printer
to be put back online. This gives the appearance that the software
is hung. Logic to detect this condition has been added. Enhanced
the Install program to work with any type of CD-ROM extensions (not
just Microsoft's MSCDEX). Changes made to the AUTOEXEC.BAT file
might not get saved if you use a hard drive cache that does write
caching and you reboot from within the install program. Fixed.
QUICKMON would display a cache size of 1024K on startup if the CD-
ROM drive had not been accessed first. Fixed. A real artist
created a better looking icon for QUICKMON.
Version 1.01 - 12/30/94
While Microsoft's MemMaker is optimizing upper memory use, CD-Quick
is unable to find your CD-ROM's real hardware device driver. The
result is the number of CD-ROM drives reported is too high, causing
MSCDEX to report an error. CD-Quick has been changed to enable it
to always find the true device driver.
Version 1.00 - 12/20/94
First release. 16
Appendix A - Error Messages
Cache has already been installed.
You have already loaded CD-Quick using this Device Driver
name. If you want to use CD-Quick with another device driver,
specify a different driver name.
Cache must be installed before MSCDEX.
CD-Quick requires that it be loaded AFTER your CD-ROM hardware
device driver and BEFORE Microsoft's MSCDEX.EXE. Check your
AUTOEXEC.BAT and/or CONFIG.SYS files to make sure that is the
case.
Device driver not found: 'XXXXXXXX'. Please install before
CD-QUICK.
The hardware device driver you told CD-Quick to use has not
been loaded. This is done by a line in your CONFIG.SYS file.
Make sure this driver is loaded and the driver name is cor-
rect.
Extended Memory Manager not present.
CD-Quick requires the extended memory in your system be man-
aged by a memory manager. It's the memory manager's job to
turn extended memory into XMS memory. The XMS memory manager
HIMEM.SYS comes with DOS and should be loaded by a line in
your CONFIG.SYS file. See your DOS manual if you need help
with this. Any memory manager supporting version 2.0 of the
XMS specification will work with CD-Quick.
Extended Memory allocation error.
CD-Quick tried to allocate XMS memory and the XMS memory
manager returned an error. No memory could be allocated.
Check to see if you've got some free XMS memory available.
Extended Memory not present or not-usable.
You don't have any memory above 1MB in your system. CD-Quick
uses extended XMS memory for its data cache. In very unusual
situations you may have UMB memory but no XMS memory, so it
may be possible to use UMB memory instead. See the section on
CD-Quick's command line parameters and the use of the '/U'
option. 17
HMA can not be enabled. Use /NOHMA option.
You have enough free memory in the High Memory Area, but it
can't be accessed. Use the /NOHMA switch when loading CDQ to
disable CD-Quick's HMA use.
No valid CDROM device drivers selected.
You didn't specify a CD-ROM hardware device driver to use with
CD-Quick. Check your AUTOEXEC.BAT file to make sure you have
used the '/D:' parameter.
Not enough Extended Memory, must have at least 64K free.
Although you have XMS memory in your system, less than 64K is
free when CD-Quick loads. Either decrease the amount of XMS
memory allocated to other applications that load before CD-
Quick or buy more memory.
Not enough Extended Memory, reducing number of buffers.
You don't have enough free XMS memory to allocate a cache as
large as you have specified. CD-Quick will allocate a lesser
number of cache buffers to fit in the memory you do have
available.
This program requires DOS 3.10 or later.
You have a very old version of DOS. Since MSCDEX.EXE or its
equivalent requires DOS 3.1 or later, you should upgrade.
Unable to allocate cache index table.
You don't have enough memory to allocate CD-Quick's cache
index table. This shouldn't be possible since CD-Quick tries
to use the HMA, UMA and also conventional memory. Please let
us know if you get this message.
Your printer is NOT ready.
You asked CD-Quick to print an order form but your printer is
offline. Check to see if your printer has power, has paper
and its cable is connected. 18
Appendix B - Common Questions and Answers
Q. After installing CD-Quick, Windows won't load (or my Windows
video driver, Wolfenstein or other whiz-bang program has
problems). If I remove CD-Quick everything works. What's
wrong?
A. The problems you are having are related to the way you have
apportioned your memory. CD-Quick uses XMS memory for its
cache. Your problems go away when CD-Quick is not loaded
because you have freed up the memory used by CD-Quick. It is
now available for Windows (or other software) to use. You need
to determine how you are allocating your XMS memory. Are you
using a cache for your hard drive? If so, how much memory
does it use? Do you have a RamDrive or print spooler that
uses XMS memory? You should also check to see how much XMS
memory CD-Quick is using. From DOS, just type CDQ any time
after CD-Quick has loaded. From Windows start CD-Quick's
QuickMon program. CD-Quick's memory usage will be displayed.
After you learn how your memory is being allocated, you can
then determine the proper division of XMS memory for your
software that uses this memory.
If you allow CD-Quick to automatically determine its cache
size, it may use too much memory in some cases. CD-Quick
can't anticipate your memory requirements after it loads. So
you have to be aware of any software that requires more XMS
memory than is usual. You can then set CD-Quick's cache size
manually.
Q. If I allocate a 2MB cache for CD-Quick and 2MB for my disk
cache, I've used up over half my memory (I've got 8MB).
A. A common mistake is to allocate too much memory to a hard
drive cache. With today's hard drives, 80% of your perfor-
mance gain will be had with 256KB to 512KB of memory. A 2MB
hard drive cache just wastes memory that could be better used
elsewhere. CD-ROMs are 20 times slower and require a larger
cache size. We recommend a ratio of 1 to 4 when allocating
memory to a hard drive cache and CD-Quick. For instance, if
you have CD-Quick set for a 2MB cache, you should set your
hard drive cache to use 512KB. If you want to set CD-Quick's
cache lower, you should reduce your hard drive cache too. For
a 1MB CD-ROM cache, use 256KB for your hard drive cache. 19
Appendix C - Comparing CD-Quick to Microsoft's SmartDrive 5.0+
The version of SmartDrive included with MS-DOS v6.2 is capable of
caching CD-ROM drives as well as hard and floppy drives. It's
tempting, if you already have SmartDrive v5.0, to wonder how it
compares to CD-Quick.
SmartDrive has improved with each version of DOS, so that today it's
not a bad disk cache. However, it has some problems when used with
CD-ROMs. Its biggest problem is that it uses a single cache for
hard drives, floppy drives and CD-ROMs. If you read a large enough
block of data from any one of these, you effectively flush the cache
for all the others. This can be something as simple as doing a file
search of your hard drive with a program such as Norton's File
Finder or similar "Where is" program. Unless SmartDrive's cache is
VERY large, any CD-ROM data will be flushed from the cache. Tests
I've run with a 345MB hard drive (87% full) and SmartDrive, show
that a "Where is" search for a nonexistent file will flush the cache
of CD-ROM data for cache sizes as great as 5MB!.
Another problem with using a single cache for both hard drives and
CD-ROMs is the big difference in access times between the two.
Average access times for most of today's hard drives are under 15
milliseconds. CD-ROMs are about 20 times slower! When deciding on
how much memory to allocate to a cache, you will always reach a
point of diminishing returns. For instance, doubling the cache size
may only increase performance by 10%. Sometimes, increasing cache
size beyond a certain point will actually DECREASE performance. At
the very least, having a cache larger than needed will waste memory.
This point of diminishing returns for hard drives is much lower than
it is for CD-ROMs. To be able to tune your system for the best
performance, you need to be able to set the size of your hard drive
cache and your CD-ROM cache independently. This can only be done if
they're separate caches. Very good hard drive performance can be
had with a 256KB to 512KB cache. A CD-ROM drive in the same system,
might need a 2MB cache or larger.
In addition to these considerations, SmartDrive doesn't use cache
memory very efficiently. SmartDrive does a lot of sector read-ahead
buffering. It reads more data than you ask for with the hope that
you'll want it later. This is fine for sequential data reads, but
it's very wasteful if you're reading data stored in many random
locations. The cache can quickly fill with data you'll never want.
CD-Quick also uses sector read-ahead buffering, but it dynamically
adjusts the amount of read-ahead based on the pattern of your reads.
It can drop the number of read-ahead sectors to zero if random data
is being read.
While the CDTEST utility included with CD-Quick is intended to
demonstrate the difference between using a CD-ROM cache and not
using one, it can also be helpful when comparing caching software.
To illustrate SmartDrive's problem of using a shared cache, have
CDTEST do a directory walk of a CD-ROM. Now do the walk again. If
the directory data is found in the cache, it should only take a
second or two. Now try a "Where is" search for a nonexistent file
on your hard drive. 20
You can do this with the DOS DIR command. Type:
DIR C:\weasel.dat /S
This will search for a 'WEASEL.DAT' file on your hard drive. If you
go back and run CDTEST's directory walk again, you will find the
cache has been flushed (unless it's VERY large). As mentioned
before, CD-Quick's cache is not shared by non CD-ROM drives, so it
can never be flushed by any reads you do on your hard drive.
If you'd like to see the effect of SmartDrive's read-ahead buffer-
ing, you can use CDTEST to do a directory walk followed by a read
test. If you go back and do another walk, you'll find in most cases
the directory data has been flushed from the cache. This second
directory walk should be very quick, since the first walk has
already read the needed data. But with SmartDrive it will take much
longer. Tests I've run show this occurs with cache sizes of up to
2MB. Because CD-Quick makes better use of cache memory, you won't
see this problem until you reduce CD-Quick's cache size to about
1MB.
A Word About Benchmarks
All benchmark programs (CD-TEST included) are intended to test and
quantify a particular aspect of a program's operation. To properly
apply a benchmark, you have to understand what the benchmark is
intended to measure. If you use it in a way other than that in
which it was intended, your results may not be accurate.
Here's a case in point. CD-TEST was intended to compare CD-Quick's
performance to a system's performance without a CD-ROM cache. It
will give meaningful results if you use it in that way. Some people
would like to use it to compare CD-Quick with other CD-ROM caches
such as SmartDrive. They might perform the following test: set
SmartDrive to use a 2MB cache, run a directory walk then do CD-
TEST's read test. Repeat with CD-Quick set to use a 2MB cache and
compare times. If you do this, you probably won't see a big differ-
ence in times. You would then (erroneously) conclude that CD-Quick
is not much better than SmartDrive.
If you did this test with both SmartDrive and CD-Quick set to use a
1MB cache, you would see a big difference in read times. You would
then conclude that CD-Quick IS much better than SmartDrive.
What's going on here? CD-Test's read test reads a total of 384
blocks (or 768KB) for the combined sequential and random read tests.
If you set both SmartDrive and CD-Quick to use a 2MB cache, this
data easily fits in memory. However, with a 1MB cache size, Smart-
Drive can't hold 768KB of data! If you ran this test with only the
2MB caches you'd never see this.
So be careful when using benchmarks. Know what they're intended to
test and use them accordingly. Also don't rely on them as your only
measure of performance. If the benchmark doesn't test for it, the
results can't show it. 21
Appendix D - Distribution Points for CD-Quick Cache
The latest version of CD-Quick Cache may be found on the ASP's
monthly CD-ROM. All BBS's who are ASP members receive this CD each
month. Check for an ASP BBS near you. The filename to look for is
CDQCKxxx.ZIP (where xxx is the version number).
CD-Quick may also be found in the IBM Hardware forum on Compuserve
(GO PCHW) in Lib 1. Look for the filename CDQCK.ZIP.
Lastly, CD-Quick is available via the ASP's Hub Network of BBS's.
If you are in North America, these BBS's all allow downloading of
CD-QUICK on the first call:
Consultant BBS, NY (718) 837-3236
Break RBBS, VA (703) 680-9269
Twilight Zone, WI (715) 652-2758
Data Exchange BBS, LA (318) 239-2122
SPACE BBS, CA (415) 323-4398
Knightec BBS, Canada (519) 940-0007