Demo Data from EDBT 2026 / reviewers in the wild / expert
Nicholas C. Gloy
dblp:38/3994
· DBLP profile ↗
7ranked-venue papers
4as first author
0since 2021 · last 1999
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 5 · 3 first-authorSoftware engineering, systems software and programming languages · 5 · 2 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
7 papers |
Processor architecture and microarchitecture · 67% Memory systems · 27% Performance modeling and evaluation · 6% | |
| Software engineering, system software, and programming languages
4 papers |
Compilers and program optimization · 82% Program analysis · 18% |
Topics — the 11 heaviest of 11, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Compilers and program optimization
code layout optimization |
0.1 | 4 | 1999 | Procedure placement using temporal-ordering information · ACM Trans. Program. Lang. Syst. 1999 System Support for Automated Profiling and Optimization · SOSP 1997 Procedure Placement Using Temporal Ordering Information · MICRO 1997 |
Processor architecture and microarchitecture
branch prediction |
0.1 | 4 | 1997 | A Language for Describing Predictors and Its Application to Automatic Synthesis · ISCA 1997 An Analysis of Dynamic Branch Prediction Schemes on System Workloads · ISCA 1996 Performance issues in correlated branch prediction schemes · MICRO 1995 |
Memory systems
cache |
0.0 | 3 | 1999 | Procedure placement using temporal-ordering information · ACM Trans. Program. Lang. Syst. 1999 Procedure Placement Using Temporal Ordering Information · MICRO 1997 Performance issues in correlated branch prediction schemes · MICRO 1995 |
Compilers and program optimization › dynamic optimization
profile-guided optimization |
0.0 | 1 | 1997 | System Support for Automated Profiling and Optimization · SOSP 1997 |
Program analysis › dynamic analysis
profiling |
0.0 | 1 | 1997 | System Support for Automated Profiling and Optimization · SOSP 1997 |
Processor architecture and microarchitecture › branch prediction
dynamic branch prediction |
0.0 | 1 | 1996 | An Analysis of Dynamic Branch Prediction Schemes on System Workloads · ISCA 1996 |
Processor architecture and microarchitecture › branch prediction
correlated branch prediction |
0.0 | 1 | 1995 | A Comparative Analysis of Schemes for Correlated Branch Prediction · ISCA 1995 |
Performance modeling and evaluation
workload characterization |
0.0 | 2 | 1997 | System Support for Automated Profiling and Optimization · SOSP 1997 An Analysis of Dynamic Branch Prediction Schemes on System Workloads · ISCA 1996 |
Memory systems › cache › CPU cache
instruction cache |
0.0 | 2 | 1997 | Procedure Placement Using Temporal Ordering Information · MICRO 1997 Performance issues in correlated branch prediction schemes · MICRO 1995 |
Processor architecture and microarchitecture
speculative execution |
0.0 | 2 | 1997 | A Language for Describing Predictors and Its Application to Automatic Synthesis · ISCA 1997 A Comparative Analysis of Schemes for Correlated Branch Prediction · ISCA 1995 |
Processor architecture and microarchitecture › branch prediction
indirect jump prediction |
0.0 | 1 | 1997 | A Language for Describing Predictors and Its Application to Automatic Synthesis · ISCA 1997 |
Methods — techniques the papers use, named apart from their topics
profile-driven optimization · 0.1temporal-ordering information · 0.0conflict cost estimation · 0.0temporal ordering analysis · 0.0statistical profiling · 0.0genetic programming · 0.0algebraic notation · 0.0simulation · 0.0static correlated prediction · 0.0dynamic correlated prediction · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 1999 | Procedure placement using temporal-ordering informationabstractInstruction cache performance is important to instruction fetch efficiency and overall processor performance. The layout of an executable has a substantial effect on the cache miss rate and the instruction working set size during execution. This means that the performance of an executable can be improved by applying a code-placement algorithm that minimizes instruction cache conflicts and improves spatial locality. We describe an algorithm for procedure placement, one type of code placement, that signicantly differs from previous approaches in the type of information used to drive the placement algorithm. In particular, we gather temporal-ordering information that summarizes the interleaving of procedures in a program trace. Our algorithm uses this information along with cache configuration and procedure size information to better estimate the conflict cost of a potential procedure ordering. It optimizes the procedure placement for single level and multilevel caches. In addition to reducing instruction cache conflicts, the algorithm simultaneously minimizes the instruction working set size of the program. We compare the performance of our algorithm with a particularly successful procedure-placement algorithm and show noticeable improvements in the instruction cache behavior, while maintaining the same instruction working set size. Nicholas C. Gloy, Michael D. Smith 0001 |
ACM Trans. Program. Lang. Syst. | 1 |
| 1997 | A Language for Describing Predictors and Its Application to Automatic SynthesisabstractAs processor architectures have increased their reliance on speculative execution to improve performance, the importance of accurate prediction of what to execute speculatively has increased. Furthermore, the types of values predicted have expanded from the ubiquitous branch and call/return targets to the prediction of indirect jump targets, cache ways and data values. In general, the prediction process is one of identifying the current state of the system, and making a prediction for some as yet uncomputed value based on that state. Prediction accuracy is improved by learning what is a good prediction for that state using a feedback process at the time the predicted value is actually computed. While there have been a number of efforts to formally characterize this process, we have taken the approach of providing a simple algebraic-style notation that allows one to express this state identification and feedback process. This notation allows one to describe a wide variety of predictors in a uniform way. It also facilitates the use of an efficient search technique called genetic programming, which is loosely modeled on the natural evolutionary process, to explore the design space. In this paper we describe our notation and the results of the application of genetic programming to the design of branch and indirect jump predictors. Joel S. Emer, Nicholas C. Gloy |
ISCA | 2 |
| 1997 | Procedure Placement Using Temporal Ordering InformationabstractInstruction cache performance is very important to instruction fetch efficiency and overall processor performance. The layout of an executable has a substantial effect on the cache miss rate during execution. This means that the performance of an executable can be improved significantly by applying a code-placement algorithm that minimizes instruction cache conflicts. We describe an algorithm for procedure placement, one type of code-placement algorithm, that significantly differs from previous approaches in the type of information used to drive the placement algorithm. In particular we gather temporal ordering information that summarizes the interleaving of procedures in a program trace. Our algorithm uses this information along with cache configuration and procedure size information to better estimate the conflict cost of a potential procedure ordering. We compare the performance of our algorithm with previously published procedure-placement algorithms and show noticeable improvements in the instruction cache behavior. Nicholas C. Gloy, Trevor Blackwell, Michael D. Smith 0001, Brad Calder |
MICRO | 1 |
| 1997 | System Support for Automated Profiling and OptimizationabstractThe Morph system provides a framework for automatic collection and management of profile information and application of profile-driven optimizations. In this paper, we focus on the operating system support that is required to collect and manage profile information on an end-user's workstation in an automatic, continuous, and transparent manner. Our implementation for a Digital Alpha machine running Digital UNIX 4.0 achieves run-time overheads of less than 0.3% during profile collection. Through the application of three code layout optimizations, we further show that Morph can use statistical profiles to improve application performance. With appropriate system support, automatic profiling and optimization is both possible and effective. 1. Introduction Morph is a combination of operating system and compiler technology that provides a practical framework for the advanced compiler optimizations needed to support continued improvements in application performance. Morph is practical becau... Xiaolan Zhang 0001, Nicholas C. Gloy, J. Bradley Chen, Michael D. Smith 0001 |
SOSP | 3 |
| 1996 | An Analysis of Dynamic Branch Prediction Schemes on System WorkloadsabstractRecent studies of dynamic branch prediction schemes rely almost exclusively on user-only simulations to evaluate performance. We find that an evaluation of these schemes with user and kernel refer-ences often leads to different conclusions. By analyzing our own Atom-generated system traces and the system traces from the Instruction Benchmark Suite, we quantify the effects of kernel and user interactions on branch prediction accuracy. We find that user-only traces yield accurate prediction results only when the kernel accounts for less than 5~o of the total executed instructions. Schemes that appear to predict well under user-only traces are not always the most effective on full-system traces: the recently-pro-posed two-level adaptive schemes can suffer from higher aliasing than the original per-branch 2-bit counter scheme. We also find that flushing the branch history state at fixed intervals does not accu-rately model the true effects of user/kernel interaction. Nicholas C. Gloy, Cliff Young, J. Bradley Chen, Michael D. Smith 0001 |
ISCA | 1 |
| 1995 | A Comparative Analysis of Schemes for Correlated Branch PredictionabstractModern high-performance architectures require extremely accurate branch prediction to overcome the performance limitations of conditional branches. We present a framework that categorizes branch prediction schemes by the way in which they partition dynamic branches and by the kind of predictor that they use. The framework allows us to compare and contrast branch prediction schemes, and to analyze why they work. We use the framework to show how a static correlated branch prediction scheme increases branch bias and thus improves overall branch prediction accuracy. We also use the framework to identify the fundamental differences between static and dynamic correlated branch prediction schemes. This study shows that there is room to improve the prediction accuracy of existing branch prediction schemes. Cliff Young, Nicholas C. Gloy, Michael D. Smith 0001 |
ISCA | 2 |
| 1995 | Performance issues in correlated branch prediction schemesabstractAccurate static branch prediction is the key to many techniques for exposing, enhancing, and exploiting Instruction Level Parallelism (ILP). The initial work on static correlated branch prediction (SCBP) demonstrated improvements in branch prediction accuracy, but did not address overall performance. In particular SCBP expands the size of executable programs, which negatively affects the performance of the instruction memory hierarchy. Using the profile information available under SCBP we can minimize these negative performance effects through the application of code layout and branch alignment techniques. We evaluate the performance effect of SCBP and these profile-driven optimizations on instruction cache misses, branch mispredictions, and branch misfetches for a number of recent processor implementations. We find that SCBP improves performance over (traditional) per-branch static profile prediction. We also find that SCBP improves the performance benefits gained from branch alignment. As expected, SCBP gives larger benefits on machine organizations with high mispredict/misfetch penalties and low cache miss penalties. Finally, we find that the application of profile-driven code layout and branch alignment techniques (without SCBP) can improve the performance of the dynamic correlated branch prediction techniques. Nicholas C. Gloy, Michael D. Smith 0001, Cliff Young |
MICRO | 1 |