
Chapter 1 System Overview
Hippo DCA2 User’s Manual
4
1.9
Distributed Cache
DynamiCache uses what is referred to as distributed cache rather than lumped cache. The
15 ns access time is available throughout the entire range of installed DynamiCache, not
just in a small external cache. External cache only provides benefit to the system while the
instructions are housed in the cache. The penalties that are usually associated with external
cache, such as write back latencies, cache thrashings and cache saturation are not present
in DynamiCache. This architecture provides all of the cache benefits for the entire range
of installed memory with none of the cache penalties.
1.10
DynamiCache Applications
DynamiCache was designed with the new emerging 32-bit protected mode operating
systems in mind. External cache, prior to 1994 was an acceptable cost based solution for
enhancing DOS applications that typically occupied a memory space that was less than the
size of the installed external cache. If the CPU requested an instruction or a string of data,
this information was made available to the CPU at cache speed (zero wait state). With the
advent of Windows, however, the typical application became larger and much more
complex supporting virtual disks, DLLs and GUI interfaces.
1.11
Application Overhead and its effect on External Cache
These new applications subsequently brought with them tremendous overhead for the
operating systems. OS/2 and Windows NT were created to handle the demands of the new
applications with the hopes that a pre-emptive multitasking, multithreading 32 bit OS
would break the bottleneck to productivity. It was quickly found that these operating
systems were only effective on high end systems, such as DX2, Pentium or RISC platforms.
Even with top end CPUs, a large main DRAM bank was needed, typically 16Mbytes or
more and a very expensive L2 cache was often employed, usually 256K to 512K.
1.12
External Cache Saturation Problem
Cache saturation is an easy concept to understand. If the executing program is smaller than
the external cache I have installed, then no saturation occurs. There will always be memory
address space available for the execution of this program. If the program is slightly larger
than my L2 cache, saturation may still not occur, provided that the cache is well designed.
There is a point, however, when the L2 cache will remain constantly saturated with
instructions. Some of these may be in the process of being read from the main memory
and some will be waiting to be written back to memory. The net effect is that if the program