Browse Prior Art Database

Configurable Cache Memory System

IP.com Disclosure Number: IPCOM000118837D
Original Publication Date: 1997-Jul-01
Included in the Prior Art Database: 2005-Apr-01

Publishing Venue

IBM

Related People

Glossner, CJ: AUTHOR [+3]

Abstract

In modern microprocessors, caches are often used to reduce the penalty in accessing data in memory. The purpose of cache memories in any system is to improve the performance of that system by effectively utilizing the well-known principle of locality exhibited by most programs as they store and retrieve data from system memory. Different memory organizations optimize performance, chip area, complexity, etc. One memory configuration may be optimal for one usage but not another.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 23% of the total text.

Configurable Cache Memory System

      In modern microprocessors, caches are often used to reduce the
penalty in accessing data in memory.  The purpose of cache memories
in any system is to improve the performance of that system by
effectively utilizing the well-known principle of locality exhibited
by most programs  as they store and retrieve data from system memory.
Different memory organizations optimize performance, chip area,
complexity, etc.  One memory configuration may be optimal for one
usage but not another.

      The principle of locality includes two constituent principles,
spatial locality and temporal locality.  Workloads tend to utilize a
small area of system memory for a relatively long period of time and
then transition to another small area of system memory for another
relatively long period of time.  The size of this small area of
memory and the length of this relatively long period of time is
program dependent.  In fact, even within the same program, the
space-time relationship is constantly changing.  However, certain
classes of application programs exhibit very consistent patterns of
locality.  For example, scientific applications tend to produce a
more uniform memory usage distribution than word processing
applications.  In extreme cases, totally new systems such as
scientific computers are cost justified because of their unique
workload requirements.  Such a new system includes an optimized
memory hierarchy for scientific applications.  On the other end of
the spectrum are general purpose computers which, as the name
implies, are faced with general workload requirements.  The very
nature of general purpose computing implies a performance compromise
for any one  specific application in order to improve average system
performance.

      Cache memory architectures must make similar performance
compromises.  While one specific set of cache configuration
parameters and management policies might optimize performance under
workload "A" on a particular system, the same set might maximally
degrade the performance under workload "B" on the same system.  For
example, if the  system requires ten time units to complete workload
"A" and ninety time units to complete workload "B", then the average
time required is  fifty time units.  If fifty time units to complete
a workload is considered good performance, then performance would
perhaps be considered  very good when workload "A" is running but
very poor when workload "B"  is running.  If these workloads were run
on a system with a different cache architecture on which workload "A"
runs in forty time units and workload "B" runs in sixty time units,
then the same average of fifty time units is maintained; however, the
difference is now only twenty time  units as compared to eighty.  The
user who usually runs workload "A" will  most likely not be satisfied
with the new system on which the time to complete his or her workload
has degraded by thirty...