3:
Computer Caches A
computer is a machine in which we measure time in very
small increments. When the
microprocessor accesses the main memory (RAM), it does it in about 60
nanoseconds (60 billionths of a second). That's pretty
fast, but it is much slower than the typical
microprocessor. Microprocessors can have cycle times as
short as 2 nanoseconds, so to a microprocessor 60
nanoseconds seems like an eternity.
What if we build a special memory bank, small but
very fast (around 30 nanoseconds)? That's already two
times faster than the main memory access. That's called
a level 2 cache or an L2 cache. What if we build
an even smaller but faster memory system directly into
the microprocessor's chip? That way, this memory will be
accessed at the speed of the microprocessor and not the
speed of the memory bus. That's an L1 cache,
which on a 233-megahertz (MHz) Pentium is 3.5 times
faster than the L2 cache, which is two times faster than
the access to main memory.
There are a lot of subsystems in a computer; you can
put cache between many of them to improve performance.
Here's an example. We have the microprocessor (the fastest
thing in the computer). Then there's the L1 cache that
caches the L2 cache that caches the main memory which
can be used (and is often used) as a cache for even
slower peripherals like hard
disks and Cd-Roms. The
hard disks are also used to cache an even slower medium
-- your Internet connection.
Your Internet connection is the slowest link
in your computer. So your browser (Internet Explorer,
Netscape, Opera, etc.) uses the hard disk to store HTML Pages, putting them into a
special folder on your disk. The first time you ask for
an HTML page, your browser renders it and a copy of it
is also stored on your disk. The next time you request
access to this page, your browser checks if the date of
the file on the Internet is newer than the one cached.
If the date is the same, your browser uses the one on
your hard disk instead of downloading it from Internet.
In this case, the smaller but faster memory system is
your hard disk and the larger and slower one is the
Internet.
Cache can also be built directly on
peripherals. Modern hard disks come with fast
memory, around 512 kilobytes,
hardwired to the hard disk. The computer doesn't
directly use this memory -- the hard-disk controller
does. For the computer, these memory chips are the disk
itself. When the computer asks for data from the hard
disk, the hard-disk controller checks into this memory
before moving the mechanical parts of the hard disk
(which is very slow compared to memory). If it finds the
data that the computer asked for in the cache, it will
return the data stored in the cache without actually
accessing data on the disk itself, saving a lot of time.
Here's an experiment you can try. Your computer
caches your floppy drive with
main memory, and you can actually see it happening.
Access a large file from your floppy -- for example,
open a 300-kilobyte text file in a text editor. The
first time, you will see the light on your floppy
turning on, and you will wait. The floppy disk is
extremely slow, so it will take 20 seconds to load the
file. Now, close the editor and open the same file
again. The second time (don't wait 30 minutes or do a
lot of disk access between the two tries) you won't see
the light turning on, and you won't wait. The operating system checked into its
memory cache for the floppy disk and found what it was
looking for. So instead of waiting 20 seconds, the data
was found in a memory subsystem much faster than when
you first tried it (one access to the floppy disk takes
120 milliseconds, while one access to the main memory
takes around 60 nanoseconds -- that's a lot faster). You
could have run the same test on your hard disk, but it's
more evident on the floppy drive because it's so slow.
To give you the big picture of it all, here's a list
of a normal caching system:
- L1 cache - Memory accesses at full
microprocessor speed (10 nanoseconds, 4 kilobytes to
16 kilobytes in size)
- L2 cache - Memory access of type SRAM (around 20 to 30 nanoseconds,
128 kilobytes to 512 kilobytes in size)
- Main memory - Memory access of type RAM (around 60 nanoseconds, 32 megabytes to 128 megabytes in size)
- Hard disk - Mechanical, slow (around 12
milliseconds, 1 gigabyte to 10
gigabytes in size)
- Internet - Incredibly slow (between 1
second and 3 days, unlimited size)
As you can see, the L1 cache caches the L2 cache,
which caches the main memory, which can be used to cache
the disk subsystems, and so on.
|