Comparative Study of Instruction Set Architectures:
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)