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

Rami Sheikh

dblp:99/9640 · DBLP profile ↗
← Back
10ranked-venue papers
5as first author
1since 2021 · last 2023
0000-0003-1365-1921ORCID · corroborated

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

Systems, architecture and hardware · 10 · 5 first-author · 1 since 2021

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 · 88% Memory systems · 8% Energy-efficient computing · 4%

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

TopicWeightPapersLastEvidence papers
Processor architecture and microarchitecture
branch prediction
1.142023
Branch Target Buffer Organizations · MICRO 2023
Control-Flow Decoupling: An Approach for Timely, Non-Speculative Branching · IEEE Trans. Computers 2015
Control-Flow Decoupling · MICRO 2012
Processor architecture and microarchitecture
instruction fetch
1.022023
Branch Target Buffer Organizations · MICRO 2023
Elastic Instruction Fetching · HPCA 2019
Processor architecture and microarchitecture › value prediction
load value prediction
0.722019
Efficient Load Value Prediction Using Multiple Predictors and Filters · HPCA 2019
Load value prediction via path-based address prediction: avoiding mispredictions due to conflicting stores · MICRO 2017
Processor architecture and microarchitecture
value prediction
0.722019
Efficient Load Value Prediction Using Multiple Predictors and Filters · HPCA 2019
Load value prediction via path-based address prediction: avoiding mispredictions due to conflicting stores · MICRO 2017
Processor architecture and microarchitecture › branch prediction
branch target buffer
0.712023
Branch Target Buffer Organizations · MICRO 2023
Processor architecture and microarchitecture › branch prediction › branch target buffer
branch target buffer organization
0.712023
Branch Target Buffer Organizations · MICRO 2023
Processor architecture and microarchitecture › instruction fetch › instruction prefetching
fetch directed instruction prefetching
0.712023
Branch Target Buffer Organizations · MICRO 2023
Processor architecture and microarchitecture › branch prediction
branch misprediction
0.212015
Control-Flow Decoupling: An Approach for Timely, Non-Speculative Branching · IEEE Trans. Computers 2015
Energy-efficient computing › energy-efficient architecture
energy-efficient microarchitecture
0.212015
Control-Flow Decoupling: An Approach for Timely, Non-Speculative Branching · IEEE Trans. Computers 2015
Memory systems › cache management
cache replacement
0.212014
LACS: A Locality-Aware Cost-Sensitive Cache Replacement Algorithm · IEEE Trans. Computers 2014
Memory systems › cache management › cache replacement
cost-sensitive cache replacement
0.212014
LACS: A Locality-Aware Cost-Sensitive Cache Replacement Algorithm · IEEE Trans. Computers 2014
Processor architecture and microarchitecture
instruction-level parallelism
0.112012
Control-Flow Decoupling · MICRO 2012
Processor architecture and microarchitecture › instruction-level parallelism
large instruction window
0.112012
Control-Flow Decoupling · MICRO 2012
Processor architecture and microarchitecture
data dependence
0.112019
Efficient Load Value Prediction Using Multiple Predictors and Filters · HPCA 2019
Memory systems › cache › CPU cache
instruction cache
0.112019
Elastic Instruction Fetching · HPCA 2019
Memory systems
cache
0.112017
Load value prediction via path-based address prediction: avoiding mispredictions due to conflicting stores · MICRO 2017

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

simulation · 0.8predictor filtering · 0.4predictor combination · 0.4pipeline flush reduction · 0.3confidence estimation · 0.3benchmark characterization · 0.2tail duplication · 0.1loop transformation · 0.1compiler transformation · 0.1
YearPublicationVenuePosition
2023 Branch Target Buffer Organizations
abstract
To accommodate very large instruction footprints, modern high-performance processors rely on fetch directed instruction prefetching through huge branch predictors and a hierarchy of Branch Target Buffers (BTBs). Recently, significant effort has been undertaken to reduce the footprint of each branch in the BTB, in order to either minimize the storage occupied by the BTB on die, or to increase the number of tracked branches at iso-storage. However, designing for branch density, while necessary, is only one dimension of BTB efficacy. In particular, BTB entry organization plays a significant role in improving instruction fetch throughput, which is a necessary step towards increased performance. In this paper, we first revisit the advantages and drawbacks of three classical BTB organizations in the context of multi-level BTB hierarchies. We then consider three possible improvements to increase the fetch PC throughput of the Region BTB and Block BTB organizations, bridging most of the performance gap with the impractical but highly storage-efficient Instruction BTB organization, thus paving the way for future very high fetch throughput machines.
Arthur Perais, Rami Sheikh
MICRO2
2019 Elastic Instruction Fetching
abstract
Branch prediction (i.e., the generation of fetch addresses) and instruction cache accesses need not be tightly coupled. As the instruction fetch stage stalls because of an ICache miss or back-pressure, the branch predictor may run ahead and generate future fetch addresses that can be used for different optimizations, such as instruction prefetching but more importantly hiding taken branch fetch bubbles. This approach is used in many commercially available high-performance design. However, decoupling branch prediction from instruction retrieval has several drawbacks. First, it can increase the pipeline depth, leading to more expensive pipeline flushes. Second, it requires a large Branch Target Buffer (BTB) to store branch targets, allowing the branch predictor to follow taken branches without decoding instruction bytes. Missing the BTB will also cause additional bubbles. In some classes of workloads, those drawbacks may significantly offset the benefits of decoupling. In this paper, we present ELastic Fetching (ELF), a hybrid mechanism that decouples branch prediction from instruction retrieval while minimizing additional bubbles on pipeline flushes and BTB misses. We present two different implementations that trade off complexity for additional performance. Both variants outperform a baseline decoupled fetcher design by up to 3.7% and 5.2%, respectively.
Arthur Perais, Rami Sheikh, Luke Yen, Michael McIlvaine, Robert D. Clancy
HPCA2
2019 Efficient Load Value Prediction Using Multiple Predictors and Filters
abstract
Value prediction [1], [2] has the potential to break through the performance limitations imposed by true data dependencies. Aggressive value predictors can deliver significant performance improvements, but usually require large hardware budgets. While predicting values of all instruction types is possible, prior work has shown that predicting just load values is most effective with a modest hardware budget (e.g., 8KB of prediction state [3], [4]). However, with hardware budget constraints and high prediction accuracy requirements (99%), prior work has struggled to increase the fraction of predicted loads (coverage) beyond the low 30s. In this paper, we analyzed four state-of-the-art load value predictors, and found that they complement each other. Based on that finding, we evaluated a new composite predictor that combines all four component predictors. Our results show that the composite predictor, combined with several optimizations we proposed, improve the benefit of load value prediction by 54%-74% depending on the total predictor budget. Moreover, our composite predictor delivers more than twice the coverage of first championship value prediction winner predictor (EVES [4]), and substantially increases the delivered speedup by more than 50%.
Rami Sheikh, Derek Hower
HPCA1
2018 VPsec: countering fault attacks in general purpose microprocessors with value prediction
abstract
Despite their complexity, general purpose microprocessors are susceptible to fault attacks. The state-of-the-art fault attacks rely on a precise understanding of the microprocessor datapath and the instructions critical path, to identify the exact time and location for injecting data faults that affect only targeted instructions in the pipeline. Software-only mitigations are only partially effective to defend against such attacks, whereas existing hardware-assisted mitigations require substantial changes to the microprocessor design. Both types of mitigation introduce significant overheads to the application memory footprint, the microprocessor area, or impact the overall system performance.
Rosario Cammarota, Rami Sheikh
CF2
2018 SPF: Selective Pipeline Flush
abstract
Branch mispredictions are inevitable in modern processors, but their high penalty in power and performance can be alleviated by selectively flushing the pipeline. In this paper, we present a practical technique to opportunistically determine the presence of correct path instructions in the processor pipeline and preserve those instructions instead of throwing them away. In our experiments, selective pipeline flush reduced the fetched instruction count by 7% (up to 26%), while increasing the performance by 2% (up to 15%).
Vignyan Reddy Kothinti Naresh, Rami Sheikh, Arthur Perais, Harold W. Cain
ICCD2
2017 Load value prediction via path-based address prediction: avoiding mispredictions due to conflicting stores
abstract
Current flagship processors excel at extracting instruction-level-parallelism (ILP) by forming large instruction windows. Even then, extracting ILP is inherently limited by true data dependencies. Value prediction was proposed to address this limitation. Many challenges face value prediction, in this work we focus on two of them. Challenge #1: store instructions change the values in memory, rendering the values in the value predictor stale, and resulting in value mispredictions and a retraining penalty. Challenge #2: value mispredictions trigger costly pipeline flushes. To minimize the number of pipeline flushes, value predictors employ stringent, yet necessary, high confidence requirements to guarantee high prediction accuracy. Such requirements can negatively impact training time and coverage.
Rami Sheikh, Harold W. Cain, Raguram Damodaran
MICRO1
2015 Control-Flow Decoupling: An Approach for Timely, Non-Speculative Branching
abstract
Mobile and PC/server class processor companies continue to roll out flagship core microarchitectures that are faster than their predecessors. Meanwhile placing more cores on a chip coupled with constant supply voltage puts per-core energy consumption at a premium. Hence, the challenge is to find future microarchitecture optimizations that not only increase performance but also conserve energy. Eliminating branch mispredictions-which waste both time and energy-is valuable in this respect. In this paper, we explore the control-flow landscape by characterizing mispredictions in four benchmark suites. We find that a third of mispredictions-per-1K-instructions (MPKI) come from what we call separable branches: branches with large control-dependent regions (not suitable for if-conversion), whose backward slices do not depend on their control-dependent instructions or have only a short dependence. We propose control-flow decoupling (CFD) to eradicate mispredictions of separable branches. The idea is to separate the loop containing the branch into two loops: the first contains only the branch's predicate computation and the second contains the branch and its control-dependent instructions. The first loop communicates branch outcomes to the second loop through an architectural queue. Microarchitecturally, the queue resides in the fetch unit to drive timely, non-speculative branching. On a microarchitecture configured similar to Intel's Sandy Bridge core, CFD increases performance by up to 55 percent, and reduces energy consumption by up to 49 percent (for CFD regions). Moreover, for some applications, CFD is a necessary catalyst for future complexity-effective large-window architectures to tolerate memory latency.
Rami Sheikh, James Tuck 0001, Eric Rotenberg
IEEE Trans. Computers1
2014 LACS: A Locality-Aware Cost-Sensitive Cache Replacement Algorithm
abstract
The design of an effective last-level cache (LLC) in general—and an effective cache replacement/partitioning algorithm in particular—is critical to the overall system performance. The processor’s ability to hide the LLC miss penalty differs widely from one miss to another. The more instructions the processor manages to issue during the miss, the better it is capable of hiding the miss penalty and the lower the cost of that miss. This nonuniformity in the processor’s ability to hide LLC miss latencies, and the resultant nonuniformity in the performance impact of LLC misses, opens up an opportunity for a new cost-sensitive cache replacement algorithm. This paper makes two key contributions. First, It proposes a framework for estimating the costs of cache blocks at run-time based on the processor’s ability to (partially) hide their miss latencies. Second, It proposes a simple, low-hardware overhead, yet effective, cache replacement algorithm that is locality-aware and cost-sensitive (LACS). LACS is thoroughly evaluated using a detailed simulation environment. LACS speeds up 12 LLC-performance-constrained SPEC CPU2006 benchmarks by up to 51% and 11% on average. When evaluated using a dual/quad-core CMP with a shared LLC, LACS significantly outperforms LRU in terms of performance and fairness, achieving improvements up to 54%.
Mazen Kharbutli, Rami Sheikh
IEEE Trans. Computers2
2012 Control-Flow Decoupling
abstract
Mobile and PC/server class processor companies continue to roll out flagship core micro architectures that are faster than their predecessors. Meanwhile placing more cores on a chip coupled with constant supply voltage puts per-core energy consumption at a premium. Hence, the challenge is to find future micro architecture optimizations that not only increase performance but also conserve energy. Eliminating branch mispredictions -- which waste both time and energy -- is valuable in this respect. We first explore the control-flow landscape by characterizing mispredictions in four benchmark suites. We find that a third of mispredictions-per-1K-instructions (MPKI) come from what we call separable branches: branches with large control-dependent regions (not suitable for if-conversion), whose backward slices do not depend on their control-dependent instructions or have only a short dependence. We propose control-flow decoupling (CFD) to eradicate mispredictions of separable branches. The idea is to separate the loop containing the branch into two loops: the first contains only the branch's predicate computation and the second contains the branch and its control-dependent instructions. The first loop communicates branch outcomes to the second loop through an architectural queue. Micro architecturally, the queue resides in the fetch unit to drive timely, non-speculative fetching or skipping of successive dynamic instances of the control-dependent region. Either the programmer or compiler can transform a loop for CFD, and we evaluate both. On a micro architecture configured similar to Intel's Sandy Bridge core, CFD increases performance by up to 43%, and reduces energy consumption by up to 41%. Moreover, for some applications, CFD is a necessary catalyst for future complexity-effective large-window architectures to tolerate memory latency.
Rami Sheikh, James Tuck 0001, Eric Rotenberg
MICRO1
2010 Improving cache performance by combining cost-sensitivity and locality principles in cache replacement algorithms
abstract
Due to the ever increasing performance gap between the processor and the main memory, it becomes crucial to bridge that gap by designing an efficient memory hierarchy capable of reducing the average memory access time. The cache replacement algorithm plays a central role in designing an efficient memory hierarchy. Many of the recent studies in cache replacement algorithms have focused on improving L2 cache replacement algorithms by minimizing the miss count. However, depending on the dependency chain, cache miss bursts, and other factors, a processor's ability to partially hide the cost of an L2 cache miss varies; that is, cache miss costs are not uniform. Therefore, a better solution would account also for the aggregate miss cost in designing cache replacement algorithms. Our proposed solution combines the two principles of locality and cost-sensitivity into one which we call: LACS: Locality-Aware Cost-Sensitive cache replacement algorithm. LACS estimates a cache block's cost from the number of instructions the processor manages to issue during a cache miss on that block and then victimizes cache blocks with low cost and poor locality in order to maximize the overall cache performance. When LACS is evaluated using a uniprocessor architecture model, it speeds up 10 L2 cache performance-constrained SPEC CPU2000 benchmarks by up to 85% and 15% on average while not slowing down any of the 20 SPEC CPU2000 benchmarks evaluated. When evaluated using a dual-core CMP architecture model, LACS speeds up 6 SPEC CPU2000 benchmark pairs by up to 44% and 11% on average.
Rami Sheikh, Mazen Kharbutli
ICCD1