Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Nicholas C. Gloy

dblp:38/3994 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Compilers and program optimization
code layout optimization
0.141999
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.141997
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.031999
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.011997
System Support for Automated Profiling and Optimization · SOSP 1997
Program analysis › dynamic analysis
profiling
0.011997
System Support for Automated Profiling and Optimization · SOSP 1997
Processor architecture and microarchitecture › branch prediction
dynamic branch prediction
0.011996
An Analysis of Dynamic Branch Prediction Schemes on System Workloads · ISCA 1996
Processor architecture and microarchitecture › branch prediction
correlated branch prediction
0.011995
A Comparative Analysis of Schemes for Correlated Branch Prediction · ISCA 1995
Performance modeling and evaluation
workload characterization
0.021997
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.021997
Procedure Placement Using Temporal Ordering Information · MICRO 1997
Performance issues in correlated branch prediction schemes · MICRO 1995
Processor architecture and microarchitecture
speculative execution
0.021997
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.011997
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
YearPublicationVenuePosition
1999 Procedure placement using temporal-ordering information
abstract
Instruction 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 Synthesis
abstract
As 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
ISCA2
1997 Procedure Placement Using Temporal Ordering Information
abstract
Instruction 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
MICRO1
1997 System Support for Automated Profiling and Optimization
abstract
The 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
SOSP3
1996 An Analysis of Dynamic Branch Prediction Schemes on System Workloads
abstract
Recent 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
ISCA1
1995 A Comparative Analysis of Schemes for Correlated Branch Prediction
abstract
Modern 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
ISCA2
1995 Performance issues in correlated branch prediction schemes
abstract
Accurate 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
MICRO1