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.

Ravi Bhargava

dblp:43/3000 · DBLP profile ↗
← Back
11ranked-venue papers
6as first author
1since 2021 · last 2023
—ORCID · conflict

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

Systems, architecture and hardware · 9 · 4 first-author · 1 since 2021Software engineering, systems software and programming languages · 3 · 3 first-authorComputer networks · 1 · 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
4 papers
Processor architecture and microarchitecture · 49% Memory systems · 22% Cloud and datacenter computing · 22%
Software engineering, system software, and programming languages
1 paper
Runtime systems and virtual machines · 100%

Topics — the 17 heaviest of 18, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Cloud and datacenter computing › virtualization
nested paging
0.112008
Accelerating two-dimensional page walks for virtualized systems · ASPLOS 2008
Memory systems › memory management › virtual memory
page table walk
0.112008
Accelerating two-dimensional page walks for virtualized systems · ASPLOS 2008
Cloud and datacenter computing
virtualization
0.112008
Accelerating two-dimensional page walks for virtualized systems · ASPLOS 2008
Memory systems › memory management
virtual memory
0.112008
Accelerating two-dimensional page walks for virtualized systems · ASPLOS 2008
Processor architecture and microarchitecture
branch prediction
0.112005
Adapting branch-target buffer to improve the target predictability of java code · ACM Trans. Archit. Code Optim. 2005
Processor architecture and microarchitecture › branch prediction
branch target buffer
0.112005
Adapting branch-target buffer to improve the target predictability of java code · ACM Trans. Archit. Code Optim. 2005
Processor architecture and microarchitecture › branch prediction
indirect branch prediction
0.112005
Adapting branch-target buffer to improve the target predictability of java code · ACM Trans. Archit. Code Optim. 2005
Processor architecture and microarchitecture › clustered architecture
cluster assignment
0.012003
Improving Dynamic Cluster Assignment for Clustered Trace Cache Processors · ISCA 2003
Processor architecture and microarchitecture
clustered architecture
0.012003
Improving Dynamic Cluster Assignment for Clustered Trace Cache Processors · ISCA 2003
Processor architecture and microarchitecture › instruction fetch
trace cache
0.012003
Improving Dynamic Cluster Assignment for Clustered Trace Cache Processors · ISCA 2003
Performance modeling and evaluation
benchmarking
0.011998
Evaluating MMX Technology Using DSP and Multimedia Applications · MICRO 1998
Performance modeling and evaluation › profiling
instruction-level profiling
0.011998
Evaluating MMX Technology Using DSP and Multimedia Applications · MICRO 1998
Processor architecture and microarchitecture
instruction set architecture
0.011998
Evaluating MMX Technology Using DSP and Multimedia Applications · MICRO 1998
Processor architecture and microarchitecture › SIMD
SIMD extensions
0.011998
Evaluating MMX Technology Using DSP and Multimedia Applications · MICRO 1998
Runtime systems and virtual machines › managed runtime
java runtime
0.012005
Adapting branch-target buffer to improve the target predictability of java code · ACM Trans. Archit. Code Optim. 2005
Processor architecture and microarchitecture › out-of-order execution
instruction window
0.012003
Improving Dynamic Cluster Assignment for Clustered Trace Cache Processors · ISCA 2003
Performance modeling and evaluation
workload characterization
0.011998
Evaluating MMX Technology Using DSP and Multimedia Applications · MICRO 1998

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

simulation · 0.1branch characterization · 0.1nested paging · 0.1dynamic profiling · 0.0instruction level profiling · 0.0
YearPublicationVenuePosition
2023 AMD Next Generation "Zen 4" Core and 4th Gen AMD EPYC™ 9004 Server CPU
abstract
“Zen 4” Improves on Successful“zen 3” Microarchitecture
Kai Troester, Ravi Bhargava
HCS2
2016 Speculative path power estimation using trace-driven simulations during high-level design phase
abstract
Today power is an important design metric and the ongoing goal of microprocessor designers is to maximize performance within specified power targets. The key to achieving this goal is the ability to accurately estimate power and performance design points of future products during the high-level micro-architectural design phase (HLD). These estimates are heavily used for feature analysis and product feasibility studies. Most performance and power simulators across the industry use the trace-driven simulation model (TDM) as opposed to an execution driven model (EDM). This is because, in general, trace-driven models: (i) have faster turnaround time; (ii) require significantly lower resources in terms of disk space, CPU time and memory footprint; and (iii) are more robust, portable and well understood. However, TDM simulations lack the ability to accurately capture the flow of speculative path (or wrong path)1execution following a branch mispredict in an out-of-order processor pipeline. This leads to inaccuracies in power and performance estimates. On the other hand, in the EDM method, input is an executable and the model can fetch and execute instructions down the speculative path on a branch mispredict. As such it enables us to accurately account for the impact of the speculative path activity. However, it is slower, prone to failures, and has much higher development and validation effort. In this paper we compare and analyze performance and power estimates from TDM and EDM simulations for the same workload phases. We observe that the impact of wrong path on power estimates is significantly higher than on the performance estimates. Using results from our analysis, we develop a methodology to account for power consumption during wrong path execution in TDM simulations. We show that the proposed methodology can provide power estimates approaching EDM-based accuracy while not sacrificing the speed and flexibility of the trace-driven models.
Saumya Chandra, Ramkumar Jayaseelan, Ravi Bhargava
ICCD3
2008 Accelerating two-dimensional page walks for virtualized systems
abstract
Nested paging is a hardware solution for alleviating the software memory management overhead imposed by system virtualization. Nested paging complements existing page walk hardware to form a two-dimensional (2D) page walk, which reduces the need for hypervisor intervention in guest page table management. However, the extra dimension also increases the maximum number of architecturally-required page table references.
Ravi Bhargava, Ben Serebrin, Francesco Spadini, Srilatha Manne
ASPLOS1
2005 Adapting branch-target buffer to improve the target predictability of java code
abstract
Java programs are increasing in popularity and prevalence on numerous platforms, including high-performance general-purpose processors. The success of Java technology largely depends on the efficiency in executing the portable Java bytecodes. However, the dynamic characteristics of the Java runtime system present unique performance challenges for several aspects of microarchitecture design. In this work, we focus on the effects of indirect branches on branch-target address prediction performance. Runtime bytecode translation, just-in-time (JIT) compilation, frequent calls to the native interface libraries, and dependence on virtual methods increase the frequency of polymorphic indirect branches. Therefore, accurate target address prediction for indirect branches is very important for Java code.This paper characterizes the indirect branch behavior in Java processing and proposes an adaptive branch-target buffer (BTB) design to enhance the predictability of the targets. Our characterization shows that a traditional BTB will frequently mispredict a few polymorphic indirect branches, significantly deteriorating predictor accuracy in Java processing. Therefore, we propose a rehashable branch-target buffer (R-BTB), which dynamically identifies polymorphic indirect branches and adapts branch-target storage to accommodate multiple targets for a branch.The R-BTB improves the target predictability of indirect branches without sacrificing overall target prediction accuracy. Simulations show that the R-BTB eliminates 61% of the indirect branch mispredictions suffered with a traditional BTB for Java programs running in interpreter mode (46% in JIT mode), which leads to a 57% decrease in overall target address misprediction rate (29% in JIT mode). With an equivalent number of entries, the R-BTB also outperforms the previously proposed target cache scheme for a majority of Java programs by adapting to a greater variety of indirect branch behaviors.
Tao Li 0006, Ravi Bhargava, Lizy Kurian John
ACM Trans. Archit. Code Optim.2
2003 Improving Dynamic Cluster Assignment for Clustered Trace Cache Processors
abstract
We examine dynamic cluster assignment for a clustered trace cache processor (CTCP). Previously proposed cluster assignment techniques run into unique problems as issue width and cluster count increase. Realistic design conditions, such as variable data forwarding latencies between clusters and a heavily partitioned instruction window, increase the degree of difficulty for effective cluster assignment. The trace cache and fill unit are used to perform dynamic cluster assignment. The retire-time fill unit analysis is aided by a dynamic profiling mechanism embedded within the trace cache. This mechanism provides information about inter-trace data dependencies, an element absent in previous retire-time CTCP cluster assignment work. The strategy proposed leads to more intra-cluster data forwarding and shorter data forwarding distances. In addition, performing cluster assignment at retire time reduces issue-time complexity and eliminates early pipeline stages. This increases overall performance for integer programs by 11.5% over our base CTCP architecture. This speedup is significantly higher than a previously proposed retire-time CTCP assignment strategy. Dynamic cluster assignment is also evaluated for several alternate cluster designs as well as for media benchmarks.
Ravi Bhargava, Lizy Kurian John
ISCA1
2002 Rehashable BTB: An Adaptive Branch Target Buffer to Improve the Target Predictability of Java Code
Tao Li 0006, Ravi Bhargava, Lizy Kurian John
HiPC2
2002 Latency and energy aware value prediction for high-frequency processors
abstract
This work addresses the issues of access latency and energy consumption in value predictor design for high-frequency, wide-issue microprocessors. Previous value prediction research allows for generous assumptions regarding table configurations and access conditions, while ignoring prediction latencies and energy issues. However, the latency of a high-performance value predictor cannot always be completely hidden by the early stages of the instruction pipeline as previously assumed, and it causes noticeable performance degradation versus unconstrained value prediction. This paper describes and compares several variations of basic value prediction methods: at fetch, post-decode, and decoupled.The performance of at-fetch and post-decode value predictors is limited by the high access latency of accurate predictor configurations. Decoupled value prediction excels at overcoming the high-frequency table access constraints by placing completion-time predictions into a separate and easily accessible storage. However, it has high energy requirements. We study a value prediction approach that combines the latency-friendly approach of decoupled value prediction with a more energy-efficient implementation. The traditional PC-indexed prediction tables are removed and replaced by a queue of prediction traces. This latency and energy aware method of maintaining and distributing speculated values leads to a 58%-95% reduction in value predictor energy consumption versus known value prediction techniques while still maintaining high performance.
Ravi Bhargava, Lizy Kurian John
ICS1
2001 Improving Java performance using hardware translation
abstract
State of the art Java Virtual Machines with Just-In-Time (JIT) compilers make use of advanced compiler techniques, run-time profiling and adaptive compilation to improve performance. However, these techniques for alleviating performance bottlenecks are more effective in long running workloads, such as server applications. Short running Java programs, or client workloads, spend a large fraction of their execution time in compilation instead of useful execution when run using JIT compilers. In short running Java programs, the benefits of runtime translation do not compensate for the overhead.
Ramesh Radhakrishnan, Ravi Bhargava, Lizy Kurian John
ICS2
2000 Issues in the design of store buffers in dynamically scheduled processors
abstract
Processor performance can be sensitive to load-store ordering, memory bandwidth, and memory access latency. A store buffer is a mechanism that exists in many current processors to accomplish one or more of the following: store access ordering, latency hiding, and data forwarding. Different policies that govern store buffer behavior can affect overall processor performance. However, the performance impact of various store buffer policies is not clearly analyzed in available literature. In this paper, we look into various store buffer issues such as i) where to place it in the pipeline, ii) when to remove a store entry from the store buffer, iii) when to allow the stores to be retired, and iv) if, when, and how to set the contention priority of memory operations. These issues are explained in detail while design and performance tradeoffs are assessed. Using a variety of C, C++, and Java benchmarks, we establish how these design policies influence performance. We find that the policies for store entry removal and store buffer pipeline placement have a large effect on the overall performance of a microprocessor. In addition, we see that smaller, well-designed store buffers can achieve comparable performance to larger, basic store buffers. Combining these results with an analysis of the benchmarks can help one fully understand the role of the store buffer and the tradeoffs involved.
Ravi Bhargava, Lizy Kurian John
ISPASS1
1999 Accurately modeling speculative instruction fetching in trace-driven simulation
abstract
Performance evaluation of modern, highly speculative, out-of-order microprocessors and the corresponding production of detailed, valid, accurate results have become serious challenges. A popular evaluation methodology is trace-driven simulation which provides the advantage of a highly portable simulator that is independent of the constraints of the trace generation system. While developing and maintaining a trace-driven simulator is relatively easier than other alternatives, a primary drawback is the inability to accurately simulate speculative instruction fetching and subsequent execution. Fetching from an incorrect path occurs often in a speculative processor, however it is difficult to capture this information in a trace. This paper investigates a scheme to accurately model instruction fetching within a trace-driven framework. This is accomplished by recreating an approximate copy of the object code segment, which we call resurrected code, using a preliminary pass through the trace. We discuss a fast and memory-efficient method for implementing this resurrected code.
Ravi Bhargava, Lizy Kurian John, Francisco Matus
IPCCC1
1998 Evaluating MMX Technology Using DSP and Multimedia Applications
abstract
Many current general purpose processors are using extensions to the instruction set architecture to enhance the performance of digital signal processing (DSP) and multimedia applications. In this paper, we evaluate the X86 architecture's multimedia extension (MMX) instruction set on a set of benchmarks. Our benchmark suite includes kernels (filtering, fast Fourier transforms, and vector arithmetic) and applications (JPEG compression, Doppler radar processing, imaging, and G.722 speech encoding). Each benchmark has at least one non-MMX version in C and an MMX version that makes calls to an MMX assembly library. The versions differ in the implementation of filtering, vector arithmetic, and other relevant kernels. The observed speed up for the MMX versions of the suite ranges from less than 1.0 to 6.1. In addition to quantifying the speedup, we perform detailed instruction level profiling using Intel's VTune profiling tool. Using VTune, we profile static and dynamic instructions, microarchitecture operations, and data references to isolate the specific reasons for speedup or lack thereof. This analysis allows one to understand which aspects of native signal processing instruction sets are most useful, the current limitations, and how they can be utilized most efficiently.
Ravi Bhargava, Lizy Kurian John, Brian L. Evans, Ramesh Radhakrishnan
MICRO1