![]() |
![]() |
In Figure 8, we present detailed results for a first trace, P1, in a two cache (same size) hierarchy. We observed similar results with all traces given in Section IV-A, the results for some of which are shown in Figures 9 and 10.
Inter-cache Bandwidth Usage: PROMOTE x more efficient than DEMOTE.
In Figure 8-10, we plot the total traffic between the
and
caches (demotions +
misses).
Observe that as the cache sizes grow, the inter-cache traffic decreases as
produces more hits.
For both LRU and ARC variants, DEMOTE generates more than double the traffic generated
by PROMOTE.
This is because DEMOTE causes a demotion for every
miss (after
is full), and also incurs more misses in
than PROMOTE.
This is true for all traces and cache sizes, where, on an average, DEMOTE
requires
% more inter-cache bandwidth than PROMOTE for the LRU variant,
and about
% more for the ARC variant.
Aggregate Hit Ratio: PROMOTE same as DEMOTE. In Figure 8, we observe that both PROMOTE-LRU and PROMOTE-ARC achieve almost the same aggregate hit ratio as their DEMOTE counterparts. This was observed for all traces and cache sizes. We also confirm that plain LRU achieves the lowest aggregate hit ratio as the inclusive nature of the lower cache results in very few hits. Please note, however, that the aggregate hit ratio is not a reliable performance metric.
Hits in the Highest Cache: PROMOTE beats DEMOTE.
For the same aggregate hit ratio, a higher number of hits in the highest
cache leads to better average response times.
In Table I, we compare the number
of hits in for a wide range of traces with two levels
of cache of
blocks each. While all the traces exhibited similar behavior,
we skip some traces in the table to keep it small.
We observe that PROMOTE-LRU beats DEMOTE-LRU by
% on an average,
and PROMOTE-ARC beats its DEMOTE contender by
%.
This is primarily because PROMOTE probabilistically promotes high reuse pages to the higher cache, while DEMOTE forces all pages to flow through the higher
cache, pushing out a great number of hits to the lower cache levels.
Average Response Time: PROMOTE beats DEMOTE.
In Figure 8 we plot the average
response time for the trace P1 at various cache sizes.
When we assume an unlimited inter-cache bandwidth and free demotions (although
DEMOTE has a rough model to attribute for demotion costs, we create the
case most favorable to DEMOTE), PROMOTE-LRU still beats DEMOTE-LRU
by up to % and PROMOTE-ARC beats DEMOTE-ARC by up to
%
across all cache sizes. For all other traces (some shown in Figures 9 and 10) PROMOTE achieves
%(LRU) and
%(ARC) better response times on an average.
In the lower right panel of Figure 8, we examine a limited bandwidth case, which is more realistic. We allow blocks per second, which is
x that required if there were no hits or demotions (
).
When we average the response time across all cache sizes, we observe that
PROMOTE substantially outperforms DEMOTE by achieving lower response times,
ms (for ARC) and
ms (for LRU), as compared to DEMOTE with
ms (for ARC) and
ms (for LRU), respectively.
In fact, both DEMOTE-LRU and DEMOTE-ARC consistently
perform worse than even plain LRU. Surprisingly,
for smaller cache sizes, DEMOTE variants perform even worse than no caching
at all (i.e. worse than
)! This happens because, when bandwidth is the bottleneck and we use DEMOTE, the bandwidth saved due to one hit in cache
is consumed by one demotion due to a miss. When the number of misses is greater than the number of hits in the cache
(
% hit ratio), a no-caching policy will actually perform better.
Since DEMOTE is clearly worse in the limited bandwidth case, we consistently assume unlimited inter-cache bandwidth and free demotions for the remaining traces shown in Figures 9 and 10.