EDBT 2026 Demo / reviewers in the wild / expert
Scott McFarling
dblp:64/3382
· DBLP profile ↗
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
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Memory systems › cache › CPU cache
instruction cache |
0.0 | 2 | 1992 | Cache Replacement with Dynamic Exclusion · ISCA 1992 Procedure Merging with Instruction Caches · PLDI 1991 |
Memory systems
cache management |
0.0 | 1 | 1992 | Cache Replacement with Dynamic Exclusion · ISCA 1992 |
Memory systems › cache management
cache replacement |
0.0 | 1 | 1992 | Cache Replacement with Dynamic Exclusion · ISCA 1992 |
Memory systems › cache
conflict miss reduction |
0.0 | 1 | 1992 | Cache Replacement with Dynamic Exclusion · ISCA 1992 |
Compilers and program optimization › code size reduction
function merging |
0.0 | 1 | 1991 | Procedure Merging with Instruction Caches · PLDI 1991 |
Memory systems
cache |
0.0 | 1 | 1991 | Procedure Merging with Instruction Caches · PLDI 1991 |
Compilers and program optimization
instruction cache optimization |
0.0 | 1 | 1989 | Program Optimization for Instruction Caches · ASPLOS 1989 |
Memory systems › cache
cache performance |
0.0 | 1 | 1989 | Program Optimization for Instruction Caches · ASPLOS 1989 |
Memory systems › cache management › instruction cache management
instruction cache miss reduction |
0.0 | 1 | 1989 | Program Optimization for Instruction Caches · ASPLOS 1989 |
Processor architecture and microarchitecture
branch prediction |
0.0 | 1 | 1986 | Reducing the Cost of Branches · ISCA 1986 |
Processor architecture and microarchitecture
pipelining |
0.0 | 1 | 1986 | Reducing the Cost of Branches · ISCA 1986 |
Performance modeling and evaluation › performance tuning
profile-guided optimization |
0.0 | 1 | 1991 | 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
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2003 | Reality-Based OptimizationabstractProfile-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 |
CGO | 1 |
| 1992 | Cache Replacement with Dynamic ExclusionabstractMost 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 |
ISCA | 1 |
| 1991 | Procedure Merging with Instruction CachesabstractThis 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 |
PLDI | 1 |
| 1989 | Program Optimization for Instruction CachesabstractThis 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 |
ASPLOS | 1 |
| 1986 | Reducing the Cost of BranchesabstractPipelining 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 |
ISCA | 1 |