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.

Haitham Akkary

dblp:31/1952 · DBLP profile ↗
← Back
26ranked-venue papers
5as 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 · 24 · 5 first-authorSoftware engineering, systems software and programming languages · 3Computer networks · 1Graphics, computer vision, multimedia, augmented reality and games · 1

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
12 papers
Processor architecture and microarchitecture · 82% Parallel and multicore computing · 6% Reconfigurable computing and FPGAs · 6%

Topics — the 30 heaviest of 34, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Processor architecture and microarchitecture › pipelining
continual flow pipeline
0.222014
Tuning the continual flow pipeline architecture with virtual register renaming · ACM Trans. Archit. Code Optim. 2014
Continual flow pipelines · ASPLOS 2004
Processor architecture and microarchitecture
superscalar processor
0.232012
Disjoint out-of-order execution processor · ACM Trans. Archit. Code Optim. 2012
Transparent control independence (TCI) · ISCA 2007
An analysis of a resource efficient checkpoint architecture · ACM Trans. Archit. Code Optim. 2004
Reconfigurable computing and FPGAs
FPGA accelerator
0.212014
Hadoop Extensions for Distributed Computing on Reconfigurable Active SSD Clusters · ACM Trans. Archit. Code Optim. 2014
Parallel and multicore computing › data-parallel programming
mapreduce
0.212014
Hadoop Extensions for Distributed Computing on Reconfigurable Active SSD Clusters · ACM Trans. Archit. Code Optim. 2014
Processor architecture and microarchitecture
pipelining
0.212014
Tuning the continual flow pipeline architecture with virtual register renaming · ACM Trans. Archit. Code Optim. 2014
Processor architecture and microarchitecture
speculative execution
0.232012
Leveraging Strength-Based Dynamic Information Flow Analysis to Enhance Data Value Prediction · ACM Trans. Archit. Code Optim. 2012
A Dynamic Multithreading Processor · MICRO 1998
Perceptron-Based Branch Confidence Estimation · HPCA 2004
Processor architecture and microarchitecture
value prediction
0.222012
Leveraging Strength-Based Dynamic Information Flow Analysis to Enhance Data Value Prediction · ACM Trans. Archit. Code Optim. 2012
A Dynamic Multithreading Processor · MICRO 1998
Processor architecture and microarchitecture
out-of-order execution
0.222012
Disjoint out-of-order execution processor · ACM Trans. Archit. Code Optim. 2012
Scalable Load and Store Processing in Latency Tolerant Processors · ISCA 2005
Processor architecture and microarchitecture
data dependence
0.112012
Leveraging Strength-Based Dynamic Information Flow Analysis to Enhance Data Value Prediction · ACM Trans. Archit. Code Optim. 2012
Processor architecture and microarchitecture › multithreading
speculative multithreading
0.112012
Disjoint out-of-order execution processor · ACM Trans. Archit. Code Optim. 2012
Processor architecture and microarchitecture
branch prediction
0.132004
An analysis of a resource efficient checkpoint architecture · ACM Trans. Archit. Code Optim. 2004
Reducing Branch Misprediction Penalty via Selective Branch Recovery · HPCA 2004
Perceptron-Based Branch Confidence Estimation · HPCA 2004
Processor architecture and microarchitecture › out-of-order execution
instruction window
0.132004
An analysis of a resource efficient checkpoint architecture · ACM Trans. Archit. Code Optim. 2004
Continual flow pipelines · ASPLOS 2004
Checkpoint Processing and Recovery: Towards Scalable Large Instruction Window Processors · MICRO 2003
Processor architecture and microarchitecture › checkpoint-based microarchitecture
checkpoint processing and recovery
0.122004
An analysis of a resource efficient checkpoint architecture · ACM Trans. Archit. Code Optim. 2004
Checkpoint Processing and Recovery: Towards Scalable Large Instruction Window Processors · MICRO 2003
Processor architecture and microarchitecture › instruction-level parallelism
control independence
0.122007
Transparent control independence (TCI) · ISCA 2007
Reducing Branch Misprediction Penalty via Selective Branch Recovery · HPCA 2004
Processor architecture and microarchitecture
multicore design
0.122012
Disjoint out-of-order execution processor · ACM Trans. Archit. Code Optim. 2012
Continual flow pipelines · ASPLOS 2004
Memory systems
cache
0.112014
Tuning the continual flow pipeline architecture with virtual register renaming · ACM Trans. Archit. Code Optim. 2014
Memory systems › cache management
cache miss handling
0.112014
Tuning the continual flow pipeline architecture with virtual register renaming · ACM Trans. Archit. Code Optim. 2014
Storage systems › flash and SSD
solid-state drive
0.112014
Hadoop Extensions for Distributed Computing on Reconfigurable Active SSD Clusters · ACM Trans. Archit. Code Optim. 2014
Processor architecture and microarchitecture › load/store queue
load-store queue management
0.112005
Scalable Load and Store Processing in Latency Tolerant Processors · ISCA 2005
Processor architecture and microarchitecture
memory latency tolerance
0.112005
Scalable Load and Store Processing in Latency Tolerant Processors · ISCA 2005
Processor architecture and microarchitecture › memory system microarchitecture
memory ordering
0.112005
Scalable Load and Store Processing in Latency Tolerant Processors · ISCA 2005
Processor architecture and microarchitecture › branch prediction
branch confidence estimation
0.012004
Perceptron-Based Branch Confidence Estimation · HPCA 2004
Processor architecture and microarchitecture › branch prediction
branch misprediction penalty
0.012004
Reducing Branch Misprediction Penalty via Selective Branch Recovery · HPCA 2004
Processor architecture and microarchitecture › branch prediction
branch misprediction recovery
0.012004
An analysis of a resource efficient checkpoint architecture · ACM Trans. Archit. Code Optim. 2004
Processor architecture and microarchitecture › pipelining
pipeline design
0.012004
Continual flow pipelines · ASPLOS 2004
Processor architecture and microarchitecture
register file
0.012004
An analysis of a resource efficient checkpoint architecture · ACM Trans. Archit. Code Optim. 2004
Processor architecture and microarchitecture › memory system microarchitecture
store-load forwarding
0.012004
An analysis of a resource efficient checkpoint architecture · ACM Trans. Archit. Code Optim. 2004
Processor architecture and microarchitecture › branch prediction
branch misprediction
0.012007
Transparent control independence (TCI) · ISCA 2007
Processor architecture and microarchitecture
multithreading
0.011998
A Dynamic Multithreading Processor · MICRO 1998
Processor architecture and microarchitecture
instruction-level parallelism
0.012004
An analysis of a resource efficient checkpoint architecture · ACM Trans. Archit. Code Optim. 2004

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

simulation · 0.2virtual register renaming · 0.2replay policy tuning · 0.2network simulation · 0.2analytical performance modeling · 0.2stride predictor · 0.1microarchitecture performance modeling · 0.1linear value predictor · 0.1information theory · 0.1dynamic information flow analysis · 0.1
YearPublicationVenuePosition
2020 Optimized Distribution of an Accelerated Convolutional Neural Network across Multiple FPGAs
abstract
Convolutional Neural Networks (CNN) have achieved a resounding success especially in computer vision and collaborative filtering. The general trend in CNN architectures has been to build deeper networks with a substantial number of convolution filters and several large feature maps. As a result, most of the current CNN inference routines are highly compute-intensive and have significant storage requirements. Field Programmable Gate Arrays (FPGAs) are among the most popular choices for accelerating CNN inference workloads as they can perform complex and massively parallel jobs. Recently, notable efforts have been made to distribute CNN inference workloads across multiple FPGAs [1]. These strategies, however, do not take into account variations in computational complexity across different layers of a CNN resulting in suboptimal performance gains. This work proposes an optimal distribution of CNN layers across different FPGA nodes while accounting for each layer’s performance to achieve maximum overall throughput.
Alaa Maarouf, Nour El Droubi, Raghid Morcel, Hazem M. Hajj, Mazen A. R. Saghir, Haitham Akkary
FCCM6
2019 Speedy Cloud: Cloud Computing with Support for Hardware Acceleration Services
abstract
While cloud computing has provided major benefits by maximizing the use of resources within a cloud, the current solutions still face many challenges. In this paper, we propose performance enhancements for cloud computations, provided by integrating hardware acceleration into the computation services. We extend the Hadoop framework by adding provisions for hardware acceleration using Field Programmable Gate Arrays (FPGAs). Hardware acceleration using energy efficient FPGAs is used as a service within the clouds or to offload computations when needed. It can provide additional sources of revenues, reduced operating costs, and increased resource utilization. We developed a custom Hadoop system and tested four applications commonly used for machine learning and deep learning. The results show the benefits of hardware acceleration and the high performance gains in smaller execution times and energy consumption.
Hassan Artail, Mazen A. R. Saghir, Mageda Sharafeddine, Hazem M. Hajj, Abdulrahman Kaitoua, Raghid Morcel, Haitham Akkary
IEEE Trans. Cloud Comput.7
2019 FeatherNet: An Accelerated Convolutional Neural Network Design for Resource-constrained FPGAs
abstract
Convolutional Neural Network (ConvNet or CNN) algorithms are characterized by a large number of model parameters and high computational complexity. These two requirements have made it challenging for implementations on resource-limited FPGAs. The challenges are magnified when considering designs for low-end FPGAs. While previous work has demonstrated successful ConvNet implementations with high-end FPGAs, this article presents a ConvNet accelerator design that enables the implementation of complex deep ConvNet architectures on resource-constrained FPGA platforms aimed at the IoT market. We call the design “FeatherNet” for its light resource utilization. The implementations are VHDL-based providing flexibility in design optimizations. As part of the design process, new methods are introduced to address several design challenges. The first method is a novel stride-aware graph-based method targeted at ConvNets that aims at achieving efficient signal processing with reduced resource utilization. The second method addresses the challenge of determining the minimal precision arithmetic needed while preserving high accuracy. For this challenge, we propose variable-width dynamic fixed-point representations combined with a layer-by-layer design-space pruning heuristic across the different layers of the deep ConvNet model. The third method aims at achieving a modular design that can support different types of ConvNet layers while ensuring low resource utilization. For this challenge, we propose the modules to be relatively small and composed of computational filters that can be interconnected to build an entire accelerator design. These model elements can be easily configured through HDL parameters (e.g., layer type, mask size, stride, etc.) to meet the needs of specific ConvNet implementations and thus they can be reused to implement a wide variety of ConvNet architectures. The fourth method addresses the challenge of design portability between two different FPGA vendor platforms, namely, Intel/Altera and Xilinx. For this challenge, we propose to instantiate the device-specific hardware blocks needed in each computational filter, rather than relying on the synthesis tools to infer these blocks, while keeping track of the similarities and differences between the two platforms. We believe that the solutions to these design challenges further advance knowledge as they can benefit designers and other researchers using similar devices or facing similar challenges. Our results demonstrated the success of addressing the design challenges and achieving low (30%) resource utilization for the low-end FPGA platforms: Zedboard and Cyclone V. The design overcame the limitation of designs targeted for high-end platforms and that cannot fit on low-end IoT platforms. Furthermore, our design showed superior performance results (measured in terms of [Frame/s/W] per Dollar) compared to high-end optimized designs.
Raghid Morcel, Hazem M. Hajj, Mazen A. R. Saghir, Haitham Akkary, Hassan Artail, Rahul Khanna, Anil S. Keshavamurthy
ACM Trans. Reconfigurable Technol. Syst.4
2017 Minimalist Design for Accelerating Convolutional Neural Networks for Low-End FPGA Platforms
abstract
Deep neural networks have gained tremendous attention in both the academic and industrial communities due to their performance in many artificial intelligence applications, particularly in computer vision. However, these algorithms are known to be computationally very demanding for both scoring and model learning applications. State-of-the-art recognition models use tens of millions of parameters and have significant memory and computational requirements. These requirements have restricted the users of deep neural network applications to high-end, expensive, and power hungry IoT platforms to penetrate the deep learning markets. This paper presents work at the leading edge intersection of several evolving technologies, including emerging IoT platforms, Deep Learning, and Field-programmable Gate Array (FPGA) computing. We demonstrate a new minimalist design methodology that minimizes the utilization of FPGA resources and can run deep learning algorithms with over 60 million parameters. This makes particularly suitable for resource-constrained, low-end FPGA platforms.
Raghid Morcel, Haitham Akkary, Hazem M. Hajj, Mazen A. R. Saghir, Anil S. Keshavamurthy, Rahul Khanna, Hassan Artail
FCCM2
2015 Voice Verification System for Mobile Devices based on ALIZE/LIA_RAL
Hussein Sharafeddin, Mageda Sharafeddine, Haitham Akkary
ICPRAM (2)3
2014 Tuning the continual flow pipeline architecture with virtual register renaming
abstract
Continual Flow Pipelines (CFPs) allow a processor core to process hundreds of in-flight instructions without increasing cycle-critical pipeline resources. When a load misses the data cache, CFP checkpoints the processor register state and then moves all miss-dependent instructions into a low-complexity WB to unblock the pipeline. Meanwhile, miss-independent instructions execute normally and update the processor state. When the miss data return, CFP replays the miss-dependent instructions from the WB and then merges the miss-dependent and miss-independent execution results. CFP was initially proposed for cache misses to DRAM. Later work focused on reducing the execution overhead of CFP by avoiding the pipeline flush before replaying miss-dependent instructions and executing dependent and independent instructions concurrently. The goal of these improvements was to gain performance by applying CFP to L1 data cache misses that hit the last level on chip cache. However, many applications or execution phases of applications incur excessive amount of replay and/or rollbacks to the checkpoint. This frequently cancels benefits from CFP and reduces performance. In this article, we improve the CFP architecture by using a novel virtual register renaming substrate and by tuning the replay policies to mitigate excessive replays and rollbacks to the checkpoint. We describe these new design optimizations and show, using Spec 2006 benchmarks and microarchitecture performance and power models of our design, that our Tuned-CFP architecture improves performance and energy consumption over previous CFP architectures by ∼10% and ∼8%, respectively. We also demonstrate that our proposed architecture gives better performance return on energy per instruction compared to a conventional superscalar as well as previous CFP architectures.
Komal Jothi, Haitham Akkary
ACM Trans. Archit. Code Optim.2
2014 Hadoop Extensions for Distributed Computing on Reconfigurable Active SSD Clusters
abstract
In this article, we propose new extensions to Hadoop to enable clusters of reconfigurable active solid-state drives (RASSDs) to process streaming data from SSDs using FPGAs. We also develop an analytical model to estimate the performance of RASSD clusters running under Hadoop. Using the Hadoop RASSD platform and network simulators, we validate our design and demonstrate its impact on performance for different workloads taken from Stanford's Phoenix MapReduce project. Our results show that for a hardware acceleration factor of 20×, compute-intensive workloads processing 153MB of data can run up to 11× faster than a standard Hadoop cluster.
Abdulrahman Kaitoua, Hazem M. Hajj, Mazen A. R. Saghir, Hassan Artail, Haitham Akkary, Mariette Awad, Mageda Sharafeddine, Khaleel Mershad 0001
ACM Trans. Archit. Code Optim.5
2013 Virtual register renaming: energy efficient substrate for continual flow pipelines
abstract
Continual Flow Pipelines (CFP) allow a processor core to process instruction windows of hundreds of in-flight instructions while keeping its cycle critical scheduler and register file small. CFP defers the execution of instructions that depend on cache misses, moving these instructions to a single ported SRAM buffer outside the pipeline, and continues execution of instructions independent of the cache miss until the miss data is fetched into the cache. This way, the CFP processor core avoids pipeline execution stalls due to cache misses while keeping multi-ported power hungry structures in the pipeline small. However, CFP cores have to wake up and replay the deferred miss dependent instructions through the execution pipeline, again, when the miss data arrives, causing these instructions to increase the circuit activity of the execution pipeline and consequently core energy consumption. In this paper, we present and evaluate virtual register renaming as a substrate for CFP cores that significantly shortens the replay loop and reduces the circuit activity of deferred miss dependent instructions, thus increasing the energy efficiency of Continual Flow Pipelines architectures.
Komal Jothi, Haitham Akkary
ACM Great Lakes Symposium on VLSI2
2013 A Mediation Layer for Connecting Data-Intensive Applications to Reconfigurable Data Nodes
abstract
A novel and rapidly growing area of research concerns data-intensive applications and the technical challenges that accompany it. One of those challenges is developing approaches and mechanisms that render high performance in processing and storing data. We joined this research effort by proposing a reconfigurable active solid state drives (RASSD) system that deals with such applications, through employing basic hardware, namely FPGA's connected to SSD's, to service the above applications as processing nodes, and take advantage of the close proximity between storage and processing. In this paper, we propose an intelligent middleware system for interfacing workstation-based and mobile applications to the distributed RASSD system. In order to provide high performance in terms of time and functionality, the middleware manages the data processing on the RASSD nodes through special pieces of code that we call drivelets, along with FPGA configuration files (bitstreams). Another important responsibility of the proposed middleware architecture lies in the unguided management of applications' flows, where it uses an intelligent script-parsing mechanism to turn one general request from the client into a sequence of operations needed to generate the required results. The middleware design allows for the integration of mobile applications into the overall architecture of the RASSD system, and allowing them to run data intensive applications that otherwise it is unfeasible for them to execute. We validate our design by comparing it to an existing middleware architecture, and present two use-cases with their results and discussion.
Mohamad Jomaa, Khaleel Mershad 0001, Noor Abbani, Yaman Sharaf-Dabbagh, Bashar Romanous, Hassan Artail, Mazen A. R. Saghir, Hazem M. Hajj, Haitham Akkary, Mariette Awad
ICCCN9
2013 Tuning the continual flow pipeline architecture
abstract
Continual Flow Pipelines (CFP) allows a processor core to process instruction windows of hundreds of instructions without increasing cycle-critical pipeline resources. When a load misses the data cache, CFP checkpoints the processor register state and then moves all miss dependent instructions into a low complexity non-critical waiting buffer to unblock the pipeline. Meanwhile, miss independent instructions execute normally and update the processor state. When the miss data returns, CFP replays the miss dependent instructions from the waiting buffer and then merges the miss dependent and the miss independent execution results.
Komal Jothi, Haitham Akkary
ICS2
2012 Leveraging Strength-Based Dynamic Information Flow Analysis to Enhance Data Value Prediction
abstract
Value prediction is a technique to increase parallelism by attempting to overcome serialization constraints caused by true data dependences. By predicting the outcome of an instruction before it executes, value prediction allows data dependent instructions to issue and execute speculatively, hence increasing parallelism when the prediction is correct. In case of a misprediction, the execution is redone with the corrected value. If the benefit from increased parallelism outweighs the misprediction recovery penalty, overall performance could be improved. Enhancing performance with value prediction therefore requires highly accurate prediction methods. Most existing general value prediction techniques are local, that is, future outputs of an instruction are predicted based on outputs from previous executions of the same instruction. In this article, we investigate leveraging strength-based dynamic information flow analysis to enhance data value prediction. We use dynamic information flow analysis (DIFA) to determine when a specific value predictor can perform well and even outperform other predictors. We apply information theory to mathematically prove the validity and benefits of correlating value predictors. We also introduce the concept of the linear value predictors, a new technique that predicts a new value from another one using a linear relation. We finally present a variant of stride predictor that we call update stride . We then conduct an empirical analysis using Pin , a dynamic binary instrumentation tool, and DynFlow , a dynamic information flow analysis tool, that we apply to programs from the SPECjvm2008 and Siemens benchmarks. Our empirical measurements support our mathematical theory and allow us to make important observations on the relation between predictability of data values and information flow. Our analysis and empirical results show that the values of a set of selected variables can be predicted with a very high accuracy, up to 100%. Such prediction is based on the previous history and/or the values of one or more other source variables that have strong information flow into the predicted variable. Using our selection criteria, we show that a DIFA-directed predictor outperforms hardware value prediction for all subject programs, and sometimes by a significant margin. This was observed even when using an ideal tagged hardware value prediction table that does not suffer from aliasing or capacity misses.
Walid J. Ghandour, Haitham Akkary, Wes Masri
ACM Trans. Archit. Code Optim.2
2012 Disjoint out-of-order execution processor
abstract
High-performance superscalar architectures used to exploit instruction level parallelism in single-thread applications have become too complex and power hungry for the multicore processors era. We propose a new architecture that uses multiple small latency-tolerant out-of-order cores to improve single-thread performance. Improving single-thread performance with multiple small out-of-order cores allows designers to place more of these cores on the same die. Consequently, emerging highly parallel applications can take full advantage of the multicore parallel hardware without sacrificing performance of inherently serial and hard to parallelize applications. Our architecture combines speculative multithreading (SpMT) with checkpoint recovery and continual flow pipeline architectures. It splits single-thread program execution into disjoint control and data threads that execute concurrently on multiple cooperating small and latency-tolerant out-of-order cores. Hence we call this style of execution Disjoint Out-of-Order Execution (DOE). DOE uses latency tolerance to overcome performance issues of SpMT caused by interthread data dependences. To evaluate this architecture, we have developed a microarchitecture performance model of DOE based on PTLSim, a simulation infrastructure of the x86 instruction set architecture. We evaluate the potential performance of DOE processor architecture using a simple heuristic to fork control independent threads in hardware at the target addresses of future procedure return instructions. Using applications from SpecInt 2000, we study DOE under ideal as well as realistic architectural constraints. We discuss the performance impact of key DOE architecture and application variables such as number of cores, interthread data dependences, intercore data communication delay, buffers capacity, and branch mispredictions. Without any DOE specific compiler optimizations, our results show that DOE outperforms conventional SpMT architectures by 15%, on average. We also show that DOE with four small cores can perform on average equally well to a large superscalar core, consuming about the same power. Most importantly, DOE improves throughput performance by a significant amount over a large superscalar core, up to 2.5 times, when running multitasking applications.
Mageda Sharafeddine, Komal Jothi, Haitham Akkary
ACM Trans. Archit. Code Optim.3
2011 A Distributed Reconfigurable Active SSD Platform for Data Intensive Applications
abstract
In this paper, we propose to combine active solid state drives and reconfigurable FPGAs into a storage-compute node to use as a building block in a distributed, high performance computation platform for data intensive applications. We propose a complete framework for middleware functionality through an API abstraction layer that hides the complexity of accessing and processing data stored on these distributed nodes, thus allowing programmers to focus on the application, and not the underlying specialized architecture. The application in turn is re-architected to maximize its performance by delegating selected computations down to the storage-compute node. We present preliminary results measured on a real hardware prototype of a single-node. These results show that our proposed architecture provides more than a 2× improvement in performance over non-reconfigurable active-disk architectures that use electromechanical disks for storage and a 6× improvement in performance over a platform that performs the computation on the middle server.
Noor Abbani, Ali Ali, Doa'A Al Otoom, Mohamad Jomaa, Mageda Sharafeddine, Hassan Artail, Haitham Akkary, Mazen A. R. Saghir, Mariette Awad, Hazem M. Hajj
HPCC7
2011 Simultaneous continual flow pipeline architecture
abstract
Since the introduction of the first industrial out-of-order superscalar processors in the 1990s, instruction buffers and cache sizes have kept increasing with every new generation of out-of-order cores. The motivation behind this continuous evolution has been performance of single-thread applications. Performance gains from larger instruction buffers and caches come at the expense of area, power, and complexity. We show that this is not the most energy efficient way to achieve performance. Instead, sizing the instruction buffers to the minimum size necessary for the common case of L1 data cache hits and using new latency-tolerant microarchitecture to handle loads that miss the L1 data cache, improves execution time and energy consumption on SpecCPU 2000 benchmarks by an average of 10% and 12% respectively, compared to a large superscalar baseline. Our non-blocking architecture outperforms other latency tolerant architectures, such as Continual Flow Pipelines, by up to 15% on the same SpecCPU 2000 benchmarks.
Komal Jothi, Mageda Sharafeddine, Haitham Akkary
ICCD3
2010 The potential of using dynamic information flow analysis in data value prediction
abstract
Value prediction is a technique to increase parallelism by attempting to overcome serialization constraints caused by true data dependences. By predicting the outcome of an instruction before it executes, value prediction allows data dependent instructions to issue and execute speculatively, hence increasing parallelism when the prediction is correct. In case of a misprediction, the execution is redone with the corrected value. If the benefit from increased parallelism outweighs the misprediction recovery penalty, overall performance could be improved. Enhancing performance with value prediction therefore requires highly accurate prediction methods. Most existing general value prediction techniques are local and future outputs of an instruction are predicted based on outputs from previous executions of the same instruction.
Walid J. Ghandour, Haitham Akkary, Wes Masri
PACT2
2008 A simple latency tolerant processor
abstract
The advent of multi-core processors and the emergence of new parallel applications that take advantage of such processors pose difficult challenges to designers. With relatively constant die sizes, limited on chip cache, and scarce pin bandwidth, more cores on chip reduces the amount of available cache and bus bandwidth per core, therefore exacerbating the memory wall problem [24]. How can a designer build a processor that provides a core with good single-thread performance in the presence of long latency cache misses, while enabling as many of these cores to be placed on the same die for high throughput. Conventional latency tolerant architectures that use out-of-order superscalar execution have become too complex and power hungry for the multi-core era. Instead, we present a simple, non-blocking architecture that achieves memory latency tolerance without requiring complex out-of-order execution hardware or large, cycle-critical and power hungry structures, such as dynamic schedulers, fully associative load and store queues, and reorder buffers. The non-blocking property of this architecture provides tolerance to hundreds of cycles of cache miss latency on a simple in-order issue core, thus allowing many more such cores to be integrated on the same die than is possible with conventional out-of-order superscalar architecture.
Satyanarayana Nekkalapu, Haitham Akkary, Komal Jothi, Renjith Retnamma
ICCD2
2007 Transparent control independence (TCI)
abstract
Superscalar architectures have been proposed that exploit control independence, reducing the performance penalty of branch mispredictions by preserving the work of future misprediction-independent instructions. The essential goal of exploiting control independence is to completely decouple future misprediction-independent instructions from deferred misprediction-dependent instructions. Current implementations fall short of this goal because they explicitly maintain program order among misprediction-independent and misprediction-dependent instructions. Explicit approaches sacrifice design efficiency and ultimately performance.
Ahmed S. Al-Zawawi, Vimal K. Reddy, Eric Rotenberg, Haitham Akkary
ISCA4
2005 Scalable Load and Store Processing in Latency Tolerant Processors
abstract
Memory latency tolerant architectures support thousands of in-flight instructions without scaling cycle-critical processor resources, and thousands of useful instructions can complete in parallel with a miss to memory. These architectures however require large queues to track all loads and stores executed while a miss is pending. Hierarchical designs alleviate cycle time impact of these structures but the CAM and search functions required to enforce memory ordering and provide data forwarding place high demand on area and power. We present new load-store processing algorithms for latency tolerant architectures. We augment primary load and store queues with secondary buffers. The secondary load buffer is a set associative structure, similar to a cache. The secondary store buffer, the Store Redo Log, is a first-in first-out structure recording the program order of all stores completed in parallel with a miss, and has no CAM and search functions. Instead of the secondary store queue, a cache provides temporary forwarding. The SRL enforces memory ordering by ensuring memory updates occur in program order once the miss returns. The new algorithms eliminate the CAM and search functions in the secondary load and store buffers, and remove fundamental sources of complexity, power, and area inefficiency in load/store processing. The new organization, while being area and power efficient, is competitive in performance compared to hierarchical designs.
Amit Gandhi, Haitham Akkary, Ravi Rajwar, Srikanth T. Srinivasan, Konrad Lai
ISCA2
2004 Continual flow pipelines
abstract
Increased integration in the form of multiple processor cores on a single die, relatively constant die sizes, shrinking power envelopes, and emerging applications create a new challenge for processor architects. How to build a processor that provides high single-thread performance and enables multiple of these to be placed on the same die for high throughput while dynamically adapting for future applications? Conventional approaches for high single-thread performance rely on large and complex cores to sustain a large instruction window for memory tolerance, making them unsuitable for multi-core chips. We present Continual Flow Pipelines (CFP) as a new non-blocking processor pipeline architecture that achieves the performance of a large instruction window without requiring cycle-critical structures such as the scheduler and register file to be large. We show that to achieve benefits of a large instruction window, inefficiencies in management of both the scheduler and register file must be addressed, and we propose a unified solution. The non-blocking property of CFP keeps key processor structures affecting cycle time and power (scheduler, register file), and die size (second level cache) small. The memory latency-tolerant CFP core allows multiple cores on a single die while outperforming current processor cores for single-thread applications.
Srikanth T. Srinivasan, Ravi Rajwar, Haitham Akkary, Amit Gandhi, Michael Upton
ASPLOS3
2004 Perceptron-Based Branch Confidence Estimation
abstract
Pipeline gating has been proposed for reducing wasted speculative execution due to branch mispredictions. As processors become deeper or wider, pipeline gating becomes more important because the amount of wasted speculative execution increases. The quality of pipeline gating relies heavily on the branch confidence estimator used. Not much work has been done on branch confidence estimators since the initial work [6]. We show the accuracy and coverage characteristics of the initial proposals do not sufficiently reduce mis-speculative execution on future deep pipeline processors. In this paper, we present a new, perceptron-based, branch confidence estimator, which is twice as accurate as the current best-known method and achieves reasonable mispredicted branch coverage. Further, the output of our predictor is multi-valued, which enables us to classify branches further as "strongly low confident" and "weakly low confident". We reverse the predictions of "strongly low confident" branches and apply pipeline gating to the "weakly low confident" branches. This combination of pipeline gating and branch reversal provides a spectrum of interesting design options ranging from significantly reducing total execution for only a small performance loss, to lower but still significant reductions in total execution, without any performance loss.
Haitham Akkary, Srikanth T. Srinivasan, Rajendar Koltur, Yogesh Patil, Wael Refaai
HPCA1
2004 Reducing Branch Misprediction Penalty via Selective Branch Recovery
abstract
Branch misprediction penalty consists of two components: the time wasted on misspeculative execution until the mispredicted branch is resolved and the time to restart the pipeline with useful instructions once the branch is resolved. Current processor trends, large instruction windows and deep pipelines, amplify both components of the branch misprediction penalty. We propose a novel method, called selective branch recovery (SBR), to reduce both components of branch misprediction penalty. SBR exploits a frequently occurring type of control independence - exact convergence - where the mispredicted path converges exactly at the beginning of the correct path. In such cases, SBR selectively reuses the results computed during misspeculative execution and obviates the need to fetch or rename convergent instructions again. Thus, SBR addresses both components of branch misprediction penalty. To increase the likelihood of branch mispredictions that can be handled with SBR, we also present an effective means for inducing exact convergence on misspeculative paths. With SBR, we significantly improve performance (between 3%-22%, average 8%) on a wide range of benchmarks over our baseline processor that does not exploit SBR.
Amit Gandhi, Haitham Akkary, Srikanth T. Srinivasan
HPCA2
2004 A Minimal Dual-Core Speculative Multi-Threading Architecture
abstract
Speculative multi-threading (SpMT) can improve single-threaded application performance using the multiple thread contexts available in current processors. We propose a minimal SpMT model that uses only two thread contexts. The model achieves significant speedups for single-threaded applications using a low-overhead scheme for detecting and selectively recovering from data dependence violations, and a novel wrong path predictor to reduce the number of speculative threads executing along the wrong path. We also study the interactions between three previously proposed SpMT thread spawning policies that can be implemented dynamically in hardware - Fork on Call, Loop Continuation and Run Ahead policies - and show it is beneficial to implement all three policies together in a processor. While the individual thread spawning policies show performance benefits of 14%, 5% and 4% respectively on our SpMT model over a base processor that does not exploit SpMT, combining all three policies shows an average performance gain of 20%. Finally, we identify the sources of SpMT benefits - on average, 58% of the performance benefits due to SpMT comes from cache prefetching, 33% from instruction reuse, and 9% from branch precomputation and show all three sources of SpMT benefits must be utilized to realize the full potential of SpMT.
Srikanth T. Srinivasan, Haitham Akkary, Tom Holman, Konrad Lai
ICCD2
2004 An analysis of a resource efficient checkpoint architecture
abstract
Large instruction window processors achieve high performance by exposing large amounts of instruction level parallelism. However, accessing large hardware structures typically required to buffer and process such instruction window sizes significantly degrade the cycle time. This paper proposes a novel checkpoint processing and recovery (CPR) microarchitecture, and shows how to implement a large instruction window processor without requiring large structures thus permitting a high clock frequency.We focus on four critical aspects of a microarchitecture: (1) scheduling instructions, (2) recovering from branch mispredicts, (3) buffering a large number of stores and forwarding data from stores to any dependent load, and (4) reclaiming physical registers. While scheduling window size is important, we show the performance of large instruction windows to be more sensitive to the other three design issues. Our CPR proposal incorporates novel microarchitectural schemes for addressing these design issues---a selective checkpoint mechanism for recovering from mispredicts, a hierarchical store queue organization for fast store-load forwarding, and an effective algorithm for aggressive physical register reclamation. Our proposals allow a processor to realize performance gains due to instruction windows of thousands of instructions without requiring large cycle-critical hardware structures.
Haitham Akkary, Ravi Rajwar, Srikanth T. Srinivasan
ACM Trans. Archit. Code Optim.1
2003 Recycling waste: exploiting wrong-path execution to improve branch prediction
abstract
Despite continuous improvement in branch prediction algorithms, branch misprediction remains a major limitation on microprocessor performance. As pipelines are widened or stretched deeper, branch prediction will become even more crucial. This paper taps into a currently wasted resource, wrong-path execution, to help improve branch prediction. Due to control independence, often the outcomes of branches that are executed along the wrong-path match the outcomes on the correct-path. Current branch prediction methods rely on correlation between branches on the correct path, therefore leaving potentially useful wrong-path branch information unexploited. We present in this paper a new, very simple, and very effective method that extends branch prediction to allow the recycling of wrong-path branch outcomes at the fetch stage. Simulations of deeply pipelined processors using a selected set of SpecInt 2000 and other benchmarks, with more than 5 branch mispredictions per thousand micro-operations, show that branch misprediction rate can be reduced by up to 30%. Depending on the pipeline depth, the corresponding average performance improvement varies from 5% to 20%.
Haitham Akkary, Srikanth T. Srinivasan, Konrad Lai
ICS1
2003 Checkpoint Processing and Recovery: Towards Scalable Large Instruction Window Processors
abstract
Large instruction window processors achieve high performance by exposing large amounts of instruction level parallelism. However, accessing large hardware structures typically required to buffer and process such instruction window sizes significantly degrade the cycle time. This paper proposes a checkpoint processing and recovery (CPR) microarchitecture, and shows how to implement a large instruction window processor without requiring large structures thus permitting a high clock frequency. We focus of four critical aspects of a microarchitecture: 1) scheduling instructions; 2) recovering from branch mispredicts; 3) buffering a large number of stores and forwarding data from stores to any dependent load; and 4) reclaiming physical registers. While scheduling window size is important, we show the performance of large instruction windows to be more sensitive to the other three design issues. Our CPR proposal incorporates novel microarchitecture scheme for addressing these design issues-a selective checkpoint mechanism for recovering from mispredicts, a hierarchical store queue organization for fast store-load forwarding, and an effective algorithm for aggressive physical register reclamation. Our proposals allow a processor to realize performance gains due to instruction windows of thousands of instructions without requiring large cycle-critical hardware structures.
Haitham Akkary, Ravi Rajwar, Srikanth T. Srinivasan
MICRO1
1998 A Dynamic Multithreading Processor
abstract
We present an architecture that features dynamic multithreading execution of a single program. Threads are created automatically by hardware at procedure and loop boundaries and executed speculatively on a simultaneous multithreading pipeline. Data prediction is used to alleviate dependency constraints and enable lookahead execution of the threads. A two-level hierarchy significantly enlarges the instruction window. Efficient selective recovery from the second level instruction window takes place after a mispredicted input to a thread is corrected. The second level is slower to access but has the advantage of large storage capacity. We show several advantages of this architecture: (1) it minimizes the impact of ICache misses and branch mispredictions by fetching and dispatching instructions out-of-order, (2) it uses a novel value prediction and recovery mechanism to reduce artificial data dependencies created by the use of a stack to manage run-time storage, and (3) it improves the execution throughput of a superscalar by 15% without increasing the execution resources or cache bandwidth, and by 30% with one additional ICache fetch port. The speedup was measured on the integer SPEC95 benchmarks, without any compiler support, using a detailed performance simulator.
Haitham Akkary, Michael A. Driscoll
MICRO1