Disk and File Caches
Author: Richard Mi
A simple online research compiled for CS352, at University of Texas at Austin.
This site is cookie free. Sorry, no cookies for you.
Best viewed at 1024x768. You've been warned.
A cache, by definition (at least according to
www.dictionary.com)
is "A fast storage buffer in the. . . computer."
So how does this apply to Systems Architecture?
To improve overall system performance, and decrease response time.
To that end, there are several types of cache used in a computing
environment, two of which will be discussed here. The first type
would be the disk cache, which is used to reduce the
read/write time from/to a hard disk drive because it is used to
store data that is likely to be used repeatedly or will be needed
soon. This is where "temporary" files are stored until it is
needed again (whenever that might be). Incidentally this also
leads to some technical solutions calling for clearing of the
"disk cache". Whereas the file cache, A.K.A. virtual
memory, is what an operating system uses in case of running out
of physical memory (RAM). It is very easy to get both caches
confused, as both resides physically on the hard drive when
deployed, and both are used as "scratch space" by either the
operating system or an application, or both.
For example, Microsoft Windows allows one to set the file cache
option, which sets aside an amount of space to be used for virtual
memory. But in Adobe Photoshop, the user can define "scratch disks"
to be used during an image operation (essentially a disk cache).
There are a lot of similarities between the two, but there is one clear
distinction. A disk cache allows for temporary files to be
created (and manipulated manually), which increases or decreases
with use. But a file cache usually is a block of hard drive space
that is reserved, and cannot be used by anything else.
The following are links which contain further in-depth details
regarding this topic, which the author hopes the reader will find
useful.
Usenet / Newsgroups:
news://comp.os.ms-windows.programmer.memory
User support group for cache/memory issues in the Microsoft Windows environment
Tutorials:
http://www.webopedia.com/TERM/C/cache.html
A quicky tutorial on Cache
http://www.webopedia.com/TERM/D/disk_cache.html
A quicky tutorial about Disk Cache
http://www.w3.org/Library/User/Architecture/Cache.html
A quicky tutorial about File Cache
Online Repositories:
http://citeseer.nj.nec.com/directory.html
The NEC Research Institute Scientific Literature Digital Library, Computer Science Directory
Benchmarks and Utilities:
http://www.etestinglabs.com/benchmarks/winbench/winbench.asp
A comprehensive Disk Cache Benchmark Utility
http://www.zdnet.com/downloads/stories/info/0,,29191,.html
A Disk Cache read/write manager utility
http://www.zdnet.com/downloads/stories/info/0,10615,64608,00.html
A Security Patch for file cache vulnerability involving emails
Technical References from the industry:
http://www-1.ibm.com/servers/eserver/iseries/hsmcomp/eacachewhtpaper.htm
IBM's improvements on disk cache access
http://semiconductor.hitachi.com/sram.html
Hitachi Semiconductors, a manufacturer of SRAM cache (includes datasheets and emulators)
Recent research articles:
http://archi.snu.ac.kr/symin/research.html
Sang Lyul Min's Research, including cache memory
http://www.ele.uri.edu/Research/hpcl/RAPID/RAPID.html
Reserach on Disk Cache for RAID disk systems
http://archvlsi.ics.forth.gr/html_papers/TR190/paper.html
Performance of File Cache in a network environment
Miscellaneous
http://www.lowendmac.com/tech/diskcache.shtml
An interesting insight regarding RAM Drives and Disk Caches.
Even though the basis on this discussion was the RISC architecture, it is also applicable to the x86 architecture.