Comparative Study of Instruction Set Architectures:
Contemporary instruction set architectures (ISAs) and their implementations demand a revisit of the famous debate of the role of ISAs in determining the performance and energy consumption of any processor. According to different computer architects, the compiler and microarchitectural innovations have made ISAs ineffective. On contrary, many researchers believe that there is still an important role played by ISAs to determine the performance and energy efficiency of processors. This project studies differences among various ISAs and evaluates applications' performance and energy efficiency compiled for different ISAs on diverse microarchitectures. This work correlates performance and energy differences among ISAs to certain ISA features. Another goal of this project is to use machine learning techniques to correlate observed differences across ISAs to particular microarchitectural/non-microarchitectural events and ISA factors.
Related Publications:
The Impact of ISAs on Performance, Ayaz Akram and Lina Sawalha, In 14th Annual Workshop on Duplicating, Deconstructing, and Debunking (WDDD) in conjunction with ISCA-44, June 2017. (LINK)
A Study on the Impact of Instruction Set Architectures on Processor’s Performance, Ayaz Akram, Master's Theses. 1519, 2017.
(LINK)
Comparative Study of Computer Architecture Simulators:
Computer architects mostly use simulation and modeling techniques to evaluate their research ideas. Not validating these simulators can result in incorrect results and conclusions. Moreover, it is hard for new researchers to choose an already existing open-source simulator for their work. This project addresses the previously mentioned problems by performing a detailed comparative analysis of various computer architecture simulators that support Intel’s x86 instruction set architecture (ISA) based processors. We measured the experimental error of six contemporary computer architecture simulators: gem5, MARSSx86, Multi2Sim, PTLsim, Sniper, and ZSim. Another goal of this project is to perform an extensive survey of various existing computer architectural simulators and classify them into appropriate groups.
Related Publications:
x86 Computer Architectural Simulators: A Comparative Study, Ayaz Akram and Lina Sawalha, In IEEE 34th International Conference on Computer Design (ICCD), October 2016. (LINK)
A Comparison of x86 Computer Architecture Simulators, Ayaz Akram and Lina Sawalha, In ACM/IEEE Supercomputing Conference (SC16) November, 2016. (LINK)
A comparison of x86 computer architecture simulators, Ayaz Akram and Lina Sawalha, Tech. Rep. TR-CASRL-1–2016, Western Michigan University, 2016. (LINK)
A Survey of Computer Architecture Simulation Techniques, Ayaz Akram and Lina Sawalha, In ACM Computing Surveys (under review - preprint version can be provided on request).
Instruction Prefetching:
As the pipeline depth increases to extract out more parallelism aggressively, the need for a continuous supply of fetched instructions increases as well. Relying on repeating behavior of instruction stream and pre-fetching instructions before their actual use, is one of the many used techniques to improve memory performance associated to instructions as it helps to reduce the number of Instruction cache misses and can also overlap miss latencies. Different ideas have been proposed to implement these prefetchers. This project involved study different instruction prefetching techniques (Next line prefetchers, Return Address Stack Based Prefetching, Proactive instruction prefetch) by implementing them in gem5 simulator and comparing them with a newly proposed technique (not discussed here). This project uses different workloads from BigData Bench suite. None of this work has been published and it is still in progress.
System Mode Emulation in QEMU for OCTEON MIPS64:
System emulation is a better alternative to native testing of applications on embedded hardware in terms of cost, time and management. In this project, we have extended Quick Emulator (QEMU v1.0.1) to support Cavium Octeon MIPS64 processor-based embedded systems. The performance of guest Octeon MIPS64 system is also compared against native using synthetic and applications benchmarks. My specific responsibilities in this project were to provide emulation support for devices like Interrupt Controller, Timers, Console and Ethernet Controller(e1000). I also performed experiments to evaluate and improve the performance of emulated system compared to native hardware system.
Related Publication:
Emulating an Octeon MIPS64 based Embedded System on X86 in QEMU, Muhammad Amir Mehmood, Qurrat ul Ain, Ayaz Akram, Abdul Qadeer and Abdul Waheed, In IEEE 19th International Multi-topic Conference (INMIC), December
2016. (LINK)
Enabling Green Video Streaming over the Internet of Things:
I worked on the embedded systems side of this project i.e. setting up wireless sensor nodes using stm32f4 discovery boards and Contiki OS. I worked on porting Contiki OS to the required platform and also worked on adding wifi support in Contiki for the stm32f4 discovery board based platform.
Android-based ECG monitoring System:
This project involves the development of a low power and portable ECG monitoring device based on MSP430 microcontroller and an Android Phone. The motivation behind this project was to provide a reliable solution to cardiovascular patients to help them do an independent ECG analysis. Such solutions are cheap and easy to use in academic settings. The ECG monitoring system based on MSP430 microcontroller was fully integrated with sensing electrodes on the transmitter side. The controller converted the analog signal to a digital signal via an inbuilt analog-to-digital converter, conditioned and filtered it for transmission via a Bluetooth transceiver IC compatible with the MSP430. The real-time data was received by the smartphone and displayed in real-time.
Related Publication:
Android Based ECG Monitoring System, Ayaz Akram, Raheel Javed and Awais Ahmad, In International Journal of Science and Research (IJSR), November 2013. (LINK)
Comparative Study of Edge Detection Techniques:
Edge detection in a particular image is one of the basic steps of many image processing algorithms. It is therefore important to check the fidelity of edge detection techniques. This project provided a comparison of different edge detection schemes that fall into three main categories of edge detectors: Gradient-based edge detectors, Laplacian-based edge detectors, and Non-derivative based edge detectors. A quantitative (using Pratts figure of merit) and qualitative (using real-life images) comparison of different edge detection techniques was performed.
Related Publication:
Comparison of Edge Detectors, Ayaz Akram and Asad Ismail, In International Journal of Computer Science and Information Technology Research, October 2013. (Journal of Computer Science and Information Technology Research, October 2013. (LINK)