CS4997 Honours Thesis Topics
Below is a list of suggestions for honours thesis topics that I am interested
in supervising. These are just a few ideas I have in mind and not the only
ones I am interested in supervising. My main areas of interest are in the
following:
- Hardware/Software Co-Design: Designing systems that consist of both
software and hardware components. Dealing with the questions of what
functionality to place in hw/sw, simulation of solution, how to interface the
components. These are just some of the issues.
- Reconfigurable Computing: The use of re-programmable hardware devices
for implementing solutions to problems. This focuses on re-programming the
device (sometimes several times) for each different problem.
- Embedded Systems: Small computing devices used for dedicated tasks.
My main interest is in the software support for the devices themselves.
Please feel free to drop by and discuss any of the below topics, or any other
topic that you feel may be of interest.
Title: Execution Migration in a Hardware/Software Instruction Set
Description: Assume you have the instruction set belonging to a
virtual machine, such as Java. This instruction set can be implemented in many
ways. For Intel the instruction set is fully implemented in a hardware
processor. For the Java virtual machine it is often times implemented in
software. What if you have a hybrid instruction set? That is ALL of the
instruction set implemented in software, but an overlapping part of it as well
in a hardware processor. There becomes a new problem of when to move
execution from software to hardware, and vice-versa. This work will research
effective ways of solving this problem. Currently, I have some different
algorithms in place for making this decision. However, I now want to start
considering branch instructions as a factor in the decision process. The
first job of this student would be to collect statistics on different
applications to try and determine a branch prediction model. No fear! This
sounds harder than it actually is as I already have a development environment
in place that will make the collection process rather easy.
Title: Instance Specific Hardware Acceleration
Description: Reconfigurable computing allows one to design their own
custom hardware solution for a given problem. This is done on the basis that
a hardware implementation is faster than a software one. With a specific problem
in mind, investigate the potential performance gains of a hardware solution
over a software solution. I have several different available hardware devices
that can be used to perform this research. The only realy requirement is a
keen interest to learn and play with some hardware!
Title: Hardware/Software Network Packet Classification
Description: This project will do some initial work into the co-design
and implemntation of a hardware/software system that can perform a real-time
analysis of network packets for classification purposes. Network classification
is important for system administrators to monitor the network for intrusion
detection, security, and performance. Some of the trade-offs that must be
considered are throughput (performance) and cost. There are many possibilities
for this research, so be sure to drop by and discuss it further for some
specific ideas.
Title: Real-Time Applications for a Robot
Description: This project will continue on with previous work in
developing a small real-time kernel for an operating system and some useful
applications to utilize a robot. The robot is rather well equipped in terms
of hardware, however is lacking from the software perspective. If you have
any neat ideas on what you can do with a small robot, then drop by and lets
talk!