Demo Data from EDBT 2026 / reviewers in the wild / expert
Adi Yoaz
dblp:86/6783
· DBLP profile ↗
11ranked-venue papers
1as first author
0since 2021 · last 2020
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 11 · 1 first-authorSoftware engineering, systems software and programming languages · 6 · 1 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
11 papers |
Processor architecture and microarchitecture · 95% Performance modeling and evaluation · 3% Memory systems · 2% |
Topics — the 29 heaviest of 30, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Processor architecture and microarchitecture
branch prediction |
0.9 | 5 | 2020 | Auto-Predication of Critical Branches · ISCA 2020 Towards the adoption of Local Branch Predictors in Modern Out-of-Order Superscalar Processors · MICRO 2019 Difficult-Path Branch Prediction Using Subordinate Microthreads · ISCA 2002 |
Processor architecture and microarchitecture › branch prediction
hard-to-predict branch |
0.4 | 1 | 2020 | Auto-Predication of Critical Branches · ISCA 2020 |
Processor architecture and microarchitecture
speculation |
0.4 | 1 | 2020 | Auto-Predication of Critical Branches · ISCA 2020 |
Processor architecture and microarchitecture
speculative execution |
0.4 | 1 | 2020 | Focused Value Prediction · ISCA 2020 |
Processor architecture and microarchitecture
value prediction |
0.4 | 1 | 2020 | Focused Value Prediction · ISCA 2020 |
Processor architecture and microarchitecture › branch prediction
branch misprediction recovery |
0.4 | 1 | 2019 | Towards the adoption of Local Branch Predictors in Modern Out-of-Order Superscalar Processors · MICRO 2019 |
Processor architecture and microarchitecture › superscalar processor
superscalar out-of-order processor |
0.4 | 1 | 2019 | Towards the adoption of Local Branch Predictors in Modern Out-of-Order Superscalar Processors · MICRO 2019 |
Processor architecture and microarchitecture
instruction-level parallelism |
0.1 | 2 | 2020 | Focused Value Prediction · ISCA 2020 Tango: A Hardware-Based Data Prefetching Technique for Superscalar Processors · MICRO 1996 |
Processor architecture and microarchitecture
pipelining |
0.1 | 2 | 2020 | Auto-Predication of Critical Branches · ISCA 2020 Early load address resolution via register tracking · ISCA 2000 |
Performance modeling and evaluation › simulation
simulation-based evaluation |
0.1 | 1 | 2019 | Towards the adoption of Local Branch Predictors in Modern Out-of-Order Superscalar Processors · MICRO 2019 |
Memory systems
cache |
0.0 | 3 | 1999 | Tango: A Hardware-Based Data Prefetching Technique for Superscalar Processors · MICRO 1996 Speculation Techniques for Improving Load Related Instruction Scheduling · ISCA 1999 Correlated Load-Address Predictors · ISCA 1999 |
Memory systems › cache › CPU cache
instruction cache |
0.0 | 1 | 2000 | eXtended Block Cache · HPCA 2000 |
Processor architecture and microarchitecture
instruction fetch |
0.0 | 1 | 2000 | eXtended Block Cache · HPCA 2000 |
Processor architecture and microarchitecture › front-end
instruction supply |
0.0 | 1 | 2000 | eXtended Block Cache · HPCA 2000 |
Processor architecture and microarchitecture › instruction fetch
trace cache |
0.0 | 1 | 2000 | eXtended Block Cache · HPCA 2000 |
Processor architecture and microarchitecture
instruction scheduling |
0.0 | 1 | 1999 | Speculation Techniques for Improving Load Related Instruction Scheduling · ISCA 1999 |
Processor architecture and microarchitecture › out-of-order execution
memory disambiguation |
0.0 | 1 | 1999 | Speculation Techniques for Improving Load Related Instruction Scheduling · ISCA 1999 |
Processor architecture and microarchitecture › register file
physical register sharing |
0.0 | 1 | 1998 | A Novel Renaming Scheme to Exploit Value Temporal Locality Through Physical Register Reuse and Unification · MICRO 1998 |
Processor architecture and microarchitecture › register file
register file management |
0.0 | 1 | 1998 | A Novel Renaming Scheme to Exploit Value Temporal Locality Through Physical Register Reuse and Unification · MICRO 1998 |
Processor architecture and microarchitecture › out-of-order execution
register renaming |
0.0 | 1 | 1998 | A Novel Renaming Scheme to Exploit Value Temporal Locality Through Physical Register Reuse and Unification · MICRO 1998 |
Processor architecture and microarchitecture
value locality |
0.0 | 1 | 1998 | A Novel Renaming Scheme to Exploit Value Temporal Locality Through Physical Register Reuse and Unification · MICRO 1998 |
Memory systems › cache › prefetching
data prefetching |
0.0 | 1 | 1996 | Tango: A Hardware-Based Data Prefetching Technique for Superscalar Processors · MICRO 1996 |
Memory systems › cache › prefetching
hardware prefetching |
0.0 | 1 | 1996 | Tango: A Hardware-Based Data Prefetching Technique for Superscalar Processors · MICRO 1996 |
Processor architecture and microarchitecture
superscalar processor |
0.0 | 1 | 1996 | Tango: A Hardware-Based Data Prefetching Technique for Superscalar Processors · MICRO 1996 |
Memory systems › cache
prefetching |
0.0 | 1 | 2002 | Microarchitectural support for precomputation microthreads · MICRO 2002 |
Processor architecture and microarchitecture › multithreading
simultaneous multithreading |
0.0 | 1 | 2002 | Difficult-Path Branch Prediction Using Subordinate Microthreads · ISCA 2002 |
Processor architecture and microarchitecture
front-end |
0.0 | 1 | 2000 | Early load address resolution via register tracking · ISCA 2000 |
Memory systems › cache › cache organization
multibanked data cache |
0.0 | 1 | 1999 | Speculation Techniques for Improving Load Related Instruction Scheduling · ISCA 1999 |
Processor architecture and microarchitecture › branch prediction
branch target buffer |
0.0 | 1 | 1996 | Tango: A Hardware-Based Data Prefetching Technique for Superscalar Processors · MICRO 1996 |
Methods — techniques the papers use, named apart from their topics
simulation · 0.9microthread aborting · 0.0extended block cache · 0.0memory disambiguation · 0.0data cache hit-miss prediction · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Focused Value PredictionabstractValue Prediction was proposed to speculatively break true data dependencies, thereby allowing Out of Order (OOO) processors to achieve higher instruction level parallelism (ILP) and gain performance. State-of-the-art value predictors try to maximize the number of instructions that can be value predicted, with the belief that a higher coverage will unlock more ILP and increase performance. Unfortunately, this comes at increased complexity with implementations that require multiple different types of value predictors working in tandem, incurring substantial area and power cost.In this paper we motivate towards lower coverage, but focused, value prediction. Instead of aggressively increasing the coverage of value prediction, at the cost of higher area and power, we motivate refocusing value prediction as a mechanism to achieve an early execution of instructions that frequently create performance bottlenecks in the OOO processor. Since we do not aim for high coverage, our implementation is light-weight, needing just 1.2 KB of storage. Simulation results on 60 diverse workloads show that we deliver 3.3% performance gain over a baseline similar to the Intel Skylake processor. This performance gain increases substantially to 8.6% when we simulate a futuristic up-scaled version of Skylake. In contrast, for the same storage, state-of-the-art value predictors deliver a much lower speedup of 1.7% and 4.7% respectively. Notably, our proposal is similar to these predictors in performance, even when they are given nearly eight times the storage and have 60% more prediction coverage than our solution. Sumeet Bandishte, Jayesh Gaur, Zeev Sperber, Lihu Rappoport, Adi Yoaz, Sreenivas Subramoney |
ISCA | 5 |
| 2020 | Auto-Predication of Critical BranchesabstractAdvancements in branch predictors have allowed modern processors to aggressively speculate and gain significant performance with every generation of increasing out-of-order depth and width. Unfortunately, there are branches that are still hard-to-predict (H2P) and mis-speculation on these branches is severely limiting the performance scalability of future processors. One potential solution to mitigate this problem is to predicate branches by substituting control dependencies with data dependencies. Predication is very costly for performance as it inhibits instruction level parallelism. To overcome this limitation, prior works selectively applied predication at run-time on H2P branches that have low confidence of branch prediction. However, these schemes do not fully comprehend the delicate trade-offs involved in suppressing speculation and can suffer from performance degradation on certain workloads. Additionally, they need significant changes not just to the hardware but also to the compiler and the instruction set architecture, rendering their implementation complex and challenging.In this paper, by analyzing the fundamental trade-offs between branch prediction and predication, we propose Auto-Predication of Critical Branches (ACB) - an end-to-end hardware-based solution that intelligently disables speculation only on branches that are critical for performance. Unlike existing approaches, ACB uses a sophisticated performance monitoring mechanism to gauge the effectiveness of dynamic predication, and hence does not suffer from performance inversions. Our simulation results show that, with just 386 bytes of additional hardware and no software support, ACB delivers 8% performance gain over a baseline similar to the Skylake processor. We also show that ACB reduces pipeline flushes because of mis-speculations by 22%, thus effectively helping both power and performance. Adarsh Chauhan, Jayesh Gaur, Zeev Sperber, Franck Sala, Lihu Rappoport, Adi Yoaz, Sreenivas Subramoney |
ISCA | 6 |
| 2019 | Towards the adoption of Local Branch Predictors in Modern Out-of-Order Superscalar ProcessorsabstractBranch prediction accuracy plays a dominant role in the performance provided by modern Out-of-Order(OOO) superscalar processors. While global history-based branch predictors are more popular, local history-based predictors offer an additional dimension towards enhancing the overall branch prediction accuracy. Integrating the local predictors in modern cores, though, comes with non-trivial challenges associated with managing the local predictor's state and repairing this state on any branch misprediction is essential for the local predictor to operate effectively. Using a highly accurate, industry standard simulator modeling a Skylake-like OOO core and workloads spanning diverse categories including Server, High Performance Computing (HPC) and personal computing suites, besides SPEC, we methodically highlight the issues that need to be tackled, why local predictor repair is non-trivial and the performance opportunity that is lost when the local predictor repair is not handled efficiently. We discuss the issues with prior techniques and quantify their limitations when using them in current OOO cores. Further, we propose three practical, implementable and efficient repair techniques with minimal storage requirements that provide significant performance gains for local predictors. Unlike prior repair techniques that can only attain 50% of the oracular gains, our realistic repair techniques retain about 80% of the oracular gains resulting in significantly better application performance. Niranjan Soundararajan, Ragavendra Natarajan, Jared Stark, Rahul Pal, Franck Sala, Lihu Rappoport, Adi Yoaz, Sreenivas Subramoney |
MICRO | 8 |
| 2002 | Difficult-Path Branch Prediction Using Subordinate MicrothreadsabstractBranch misprediction penalties continue to increase as microprocessor cores become wider and deeper. Thus, improving branch prediction accuracy remains an important challenge. Simultaneous subordinate microthreading (SSMT) provides a means to improve branch prediction accuracy. SSMT machines run multiple, concurrent microthreads in support of the primary thread. We propose to dynamically construct microthreads that can speculatively and accurately pre-compute branch outcomes along frequently mispredicted paths. The mechanism is intended to be implemented entirely in hardware. We present the details for doing so. We show how to select the right paths, how to generate accurate predictions, and how to get this information in a timely way. We achieve an average gain of 8.4% (42% maximum) over a very aggressive baseline machine on the SPECint95 and SPECint2000 benchmark suites. Robert Chappell, Francis Tseng, Yale N. Patt, Adi Yoaz |
ISCA | 4 |
| 2002 | Microarchitectural support for precomputation microthreadsabstractResearch has shown that precomputation microthreads can be useful for improving branch prediction and prefetching. However, it is not obvious how to provide the necessary microarchitectural support, and few details have been given in the literature. By judiciously constraining microthreads, we can easily adapt a superscalar machine to support many simultaneous microthreads. The nature of precomputation microthreads also requires efficient usage of resources. Our proposed implementation addresses this issue by dynamically identifying and aborting useless microthreads. Robert Chappell, Francis Tseng, Adi Yoaz, Yale N. Patt |
MICRO | 3 |
| 2000 | eXtended Block CacheabstractThis paper describes a new instruction-supply mechanism, called the eXtended Block Cache (XBC). The goal of the XBC is to improve on the Trace Cache (TC) hit rate, while providing the same bandwidth. The improved hit rate is achieved by having the XBC a nearly redundant free structure. The basic unit recorded in the XBC is the extended block (XB), which is a multiple-entry single-exit instruction block. A XB is a sequence of instructions ending on a conditional or an indirect branch. Unconditional direct jumps do not end a XB. In order to enable multiple entry points per XB, the XB index is derived from the IP of its ending instruction. Instructions within the XB are recorded in reverse order, enabling easy extension of XBs. The multiple entry-points remove most of the redundancy. Since there is at most one conditional branch per XB, we can fetch up to n XBs per cycle by predicting n branches. The multiple fetch enables the XBC to march the TC bandwidth. Stéphan Jourdan, Lihu Rappoport, Yoav Almog, Mattan Erez, Adi Yoaz, Ronny Ronen |
HPCA | 5 |
| 2000 | Early load address resolution via register trackingabstractHigher microprocessor frequencies accentuate the performance cost of memory accesses. This is especially noticeable in the Intel's IA32 architecture where lack of registers results in increased number of memory accesses. This paper presents novel, non-speculative technique that partially hides the increasing load-to-use latency, by allowing the early issue of load instructions. Early load address resolution relies on register tracking to safely compute the addresses of memory references in the front-end part of the processor pipeline. Register tracking may be performed in any pipeline stage following instruction decode and prior to execution. Several tracking schemes are proposed in this paper: Stack pointer tracking allows safe early resolution of stack references by keeping track of the value of the ESP register (the stack pointer). About 25% of all loads are stack loads and 95% of these lends may be resolved in the front-end. Absolute address tracking allows the early resolution of constant-address loads. Displacement-based tracking tackles all loads with addresses of the form reg+immediate by tracking the values of all general-purpose registers. This class corresponds to 82% of all loads, and about 65% of these loads can be safely resolved in the front-end pipeline. The paper describes the tracking schemes, analyzes their performance potential in a deeply pipelined processor and discusses the integration of tracking with memory disambiguation. Michael Bekerman, Adi Yoaz, Freddy Gabbay, Stéphan Jourdan, Maxim Kalaev, Ronny Ronen |
ISCA | 2 |
| 1999 | Correlated Load-Address PredictorsabstractAs microprocessors become faster, the relative performance cost of memory accesses increases. Bigger and faster caches significantly reduce the absolute load-to-use time delay. However, increase in processor operational frequencies impairs the relative load-to-use latency, measured in processor cycles (e.g. from two cycles on the Pentium processor to three cycles of more in current designs). Load-address prediction techniques were introduced to partially cut the load-to-use latency. This paper focuses on advanced address-prediction schemes to further shorten program execution time. Existing address prediction schemes are capable of predicting simple address patterns, consisting mainly of constant addresses or stride-based addresses. This paper explores the characteristics of the remaining loads and suggests new enhanced techniques to improve prediction effectiveness: Context-based prediction to tackle part of the remaining, difficult-to-predict, load instructions. New prediction algorithms to take advantage of global correlation among different static loads. New confidence mechanisms to increase the correct prediction rate and to eliminate costly mispredictions. Mechanisms to prevent long or random address sequences from polluting the predictor data structures while providing some hysteresis behavior to the predictions. Such an enhanced address predictor accurately predicts 67% of all loads, while keeping the misprediction rate close to 1% We further prove that the proposed predictor works reasonably well in a deep pipelined architecture where the predict-to-update delay may significantly impair both prediction rate and accuracy. Michael Bekerman, Stéphan Jourdan, Ronny Ronen, Gilad Kirshenboim, Lihu Rappoport, Adi Yoaz, Uri C. Weiser |
ISCA | 6 |
| 1999 | Speculation Techniques for Improving Load Related Instruction SchedulingabstractState of the art microprocessors achieve high performance by executing multiple instructions per cycle. In an out-of-order engine, the instruction scheduler is responsible for dispatching instructions to execution units based on dependencies, latencies, and resource availability. Most existing instruction schedulers are doing a less than optimal job of scheduling memory accesses and instructions dependent on them, for the following reasons: Memory dependencies cannot be resolved prior to execution, so loads are not advanced ahead of preceding stores. The dynamic latencies of load instructions are unknown, so scheduling dependent instructions is based on either optimistic load-use delay (may cause re-scheduling and re-execution) or pessimistic delay (creating unnecessary delays). Memory pipelines are more expensive than other execution units, and as such, are a scarce resource. Currently, an increase in the memory execution bandwidth is usually achieved through multi-banked caches where bank conflicts limit efficiency. In this paper we present three techniques to address these scheduler limitations. One is to improve the scheduling of load instructions by using a simple memory disambiguation mechanism. The second is to improve the scheduling of load dependent instructions by employing a Data Cache Hit-Miss Predictor to predict the dynamic load latencies. And the third is to improve the efficiency of load scheduling in a multi-banked cache through cache-bank prediction. Adi Yoaz, Mattan Erez, Ronny Ronen, Stéphan Jourdan |
ISCA | 1 |
| 1998 | A Novel Renaming Scheme to Exploit Value Temporal Locality Through Physical Register Reuse and UnificationabstractHardware renaming schemes provide multiple physical locations (register or memory) for each logical name. In current renaming schemes, a new physical location is allocated for each dispatched instruction regardless of its result value. However, these values exhibit a high level of temporal locality (result redundancy). This paper proposes: Physical Register Reuse. To reuse a physical location whenever it is detected that an incoming result value matches a previous one. This is performed during register renaming and requires some VALUE-IDENTITY DETECTION hardware. By mapping several logical registers holding the same value to the same physical register, Physical Register Reuse gives the opportunities: SHARING-exploit the high level of value-redundancy in the register file to either reduce the file size and complexity, or effectively enlarge the active instruction window. Our results suggest reduction factors of 2 to 4 in some cases. Performance is increased either by the enlarged instruction window or by the higher frequency enabled by a smaller register file requiring fewer ports. RESULT REUSE AND DEPENDENCY REDIRECTION-move the responsibility of generating results: (1) From the functional units to the register renamer, resulting in the possible elimination of processed instructions from the execution stream. (2) From one instruction to an earlier instruction stream, possibly allowing instructions to be scheduled earlier. This way, large performance speedups are achieved. 2. Unification. To combine the memory renamer with the register renamer in order to extend the above-stated sharing and result reuse and dependency redirection ideas to both registers and memory locations. This allows even greater hardware savings and performance improvements. This also simplifies the processing of store instructions. Stéphan Jourdan, Ronny Ronen, Michael Bekerman, Bishara Shomar, Adi Yoaz |
MICRO | 5 |
| 1996 | Tango: A Hardware-Based Data Prefetching Technique for Superscalar ProcessorsabstractWe present a new hardware-based data prefetching mechanism for enhancing instruction level parallelism and improving the performance of superscalar processors. The emphasis in our scheme is on the effective utilization of slack time and hardware resources not used for the main computation. The scheme suggests a new hardware construct, the program progress graph (PPG), as a simple extension to the branch target buffer (BTB). We use the PPG for implementing a fast pre-program counter pre-PC, that travels only through memory reference instructions (rather than scanning all the instructions sequentially). In a single clock cycle the pre-PC extracts all the predicted memory references in some future block of instructions, to obtain early data prefetching. In addition, the PPG can be used for implementing a pre-processor and for instruction prefetching. The prefetch requests are scheduled to "range" with the core requests from the data cache, by using only free time slots on the existing data cache tag ports. Employing special methods for removing prefetch requests that are already in the cache (without utilizing the cache-tag ports bandwidth) and a simple optimization on the cache LRU mechanism reduce the number of prefetch requests sent to the core-cache bus and to the memory (second level) bus. Simulation results on the SPEC92 benchmark for the base line architecture (32 K-byte data cache and 12 cycles fetch latency) show an average speedup of 1.36 (CPI ratio). Shlomit S. Pinter, Adi Yoaz |
MICRO | 2 |