Scott McFarling

dblp:64/3382 · DBLP profile ↗
← Back
5ranked-venue papers
5as first author
0since 2021 · last 2003
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 5 first-authorSystems, architecture and hardware · 4 · 4 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
4 papers
Memory systems · 86% Processor architecture and microarchitecture · 11% Performance modeling and evaluation · 3%
Software engineering, system software, and programming languages
2 papers
Compilers and program optimization · 100%

Topics — the 12 heaviest of 13, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Memory systems › cache › CPU cache
instruction cache
0.021992
Cache Replacement with Dynamic Exclusion · ISCA 1992
Procedure Merging with Instruction Caches · PLDI 1991
Memory systems
cache management
0.011992
Cache Replacement with Dynamic Exclusion · ISCA 1992
Memory systems › cache management
cache replacement
0.011992
Cache Replacement with Dynamic Exclusion · ISCA 1992
Memory systems › cache
conflict miss reduction
0.011992
Cache Replacement with Dynamic Exclusion · ISCA 1992
Compilers and program optimization › code size reduction
function merging
0.011991
Procedure Merging with Instruction Caches · PLDI 1991
Memory systems
cache
0.011991
Procedure Merging with Instruction Caches · PLDI 1991
Compilers and program optimization
instruction cache optimization
0.011989
Program Optimization for Instruction Caches · ASPLOS 1989
Memory systems › cache
cache performance
0.011989
Program Optimization for Instruction Caches · ASPLOS 1989
Memory systems › cache management › instruction cache management
instruction cache miss reduction
0.011989
Program Optimization for Instruction Caches · ASPLOS 1989
Processor architecture and microarchitecture
branch prediction
0.011986
Reducing the Cost of Branches · ISCA 1986
Processor architecture and microarchitecture
pipelining
0.011986
Reducing the Cost of Branches · ISCA 1986
Performance modeling and evaluation › performance tuning
profile-guided optimization
0.011991
Procedure Merging with Instruction Caches · PLDI 1991

Methods — techniques the papers use, named apart from their topics

profile information · 0.0cache miss rate modeling · 0.0profile-guided optimization · 0.0code repositioning · 0.0simulation · 0.0static prediction · 0.0dynamic prediction · 0.0
YearPublicationVenuePosition
2003 Reality-Based Optimization
abstract
Profile-based optimization has been studied extensively. Numerous papers and real systems have shown substantial improvements. However, most of these papers have been limited to either branch prediction or instruction cache performance. Also, most of these papers have looked at small applications with a limited number of testing and training scenarios. In this paper, we look at real use of large real-world desktop applications. We also assume memory consumption and disk performance are the primary metrics of interest. For this domain, we show that it is very difficult to get adequate coverage of large applications even with an extensive collection of training scenarios. We propose instead to augment traditional scenarios with data derived from real use. We show that this methodology allows us to reduce memory pressure by 29% and disk reads by 33% compared to traditional approaches.
Scott McFarling
CGO1
1992 Cache Replacement with Dynamic Exclusion
abstract
Most recent cache designs use direct-mapped caches to provide the fast access time required by modern high speed CPU's. Unfortunately, direct-mapped caches have higher miss rates than set-associative caches, largely because direct-mapped caches are more sensitive to conflicts between items needed frequently in the same phase of program execution.This paper presents a new technique for reducing direct-mapped cache misses caused by conflicts for a particular cache line. A small finite state machine recognizes the common instruction reference patterns where storing an instruction in the cache actually harms performance. Such instructions are dynamically excluded, that is they are passed directly through the cache without being stored. This reduces misses to the instructions that would have been replaced.The effectiveness of dynamic exclusion is dependent on the severity of cache conflicts and thus on the particular program and cache size of interest. However, across the SPEC benchmarks, simulation results show an average reduction in miss rate of 33% for a 32KB instruction cache with 16B lines. In addition, applying dynamic exclusion to one level of a cache hierarchy can improve the performance of the next level since instructions do not need to be stored on both levels. Finally, dynamic exclusion also improves combined instruction and data cache miss rates.
Scott McFarling
ISCA1
1991 Procedure Merging with Instruction Caches
abstract
This paper describes a method of determining which procedures to merge for machines with instruction caches. The method uses profile information, the structure of the program, the cache size, and the cache miss penalty to guide the choice. Optimization for the cache is assumed to follow procedure merging. The method weighs the benefit of removing calls with the increase in the instruction cache miss rate. Better performance is achieved than previous schemes that do not consider the cache. Merging always results in a savings, unlike simpler schemes that can make programs slower once cache effects are considered. The new method also has better performance even when parameters to simpler algorithms are varied to get the best performance. This report is a preprint of a paper that will be presented at the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, Toronto, Ontario, Canada, June 26-28, 1991. Copyright 1990 ACM. i 1 Introduction This paper presents a ...
Scott McFarling
PLDI1
1989 Program Optimization for Instruction Caches
abstract
This paper presents an optimization algorithm for reducing instruction cache misses. The algorithm uses profile information to reposition programs in memory so that a direct-mapped cache behaves much like an optimal cache with full associativity and full knowledge of the future. For best results, the cache should have a mechanism for excluding certain instructions designated by the compiler. This paper first presents a reduced form of the algorithm. This form is shown to produce an optimal miss rate for programs without conditionals and with a tree call graph, assuming basic blocks can be reordered at will. If conditionals are allowed, but there are no loops within conditionals, the algorithm does as well as an optimal cache for the worst case execution of the program consistent with the profile information. Next, the algorithm is extended with heuristics for general programs. The effectiveness of these heuristics are demonstrated with empirical results for a set of 10 programs for various cache sizes. The improvement depends on cache size. For a 512 word cache, miss rates for a direct-mapped instruction cache are halved. For an 8K word cache, miss rates fall by over 75%. Over a wide range of cache sizes the algorithm is as effective as increasing the cache size by a factor of 3 times. For 512 words, the algorithm generates only 32% more misses than an optimal cache. Optimized programs on a direct-mapped cache have lower miss rates than unoptimized programs on set-associative caches of the same size.
Scott McFarling
ASPLOS1
1986 Reducing the Cost of Branches
abstract
Pipelining is the major organizational technique that computers use to reach higher single-processor performance. A fundamental disadvantage of pipelining is the loss incurred due to branches that require stalling or flushing the pipeline. Both hardware solutions and architectural changes have been proposed to overcome these problems. This paper examines a range of schemes for reducing branch cost focusing on both static (compile-time) and dynamic (hardware-assisted) prediction of branches. These schemes are investigated from quantitative performance and implementation viewpoints. 1
Scott McFarling, John L. Hennessy
ISCA1