Project Ideas

The following list are just a sample of possible projects to get you started.

Partial deterministic Replay

Create a pin based tool which allows a user to determine which operations should be determinisitically replayed and then records the minimal set of operations to support deterministic replay.

ROP Compiler

Build a system which would take an arbitrary target executable (as a binary) and a source object file and convert the source object file into a ROP-based program that would run on the target. Then, examine proposals for eliminating such attacks and see how they would defeat your ROP compiled code.

Analayze an application (E.g., Bitcoin Mining)

Analayze the bitcoin mining algorithm and propose architectural features that would speed it up.

System Simulation based on AVR and peripherals

Develop a simulation methodology for AVR based systems which will allow full simulation (even if only functional) of the avr chip and its associated peripherals.

Accelerator API

Develop and analyze an ISA API which is general enough to deal with hardware accelerators that might be put on a chip.

Programmable Cache Controller

Examine how a re-programmable cache might improve perforamance of a multicore system. hat aspects of the cache should be programmable? How would this effect performance? How could one couple this with high-level languages.

More simply, examine a small set of directives which can be applied to cache blocks, e.g., private, shared, streaming, and explore the effect this would have on such a system and how it would be implemented.

Interrupt Co-Processor

Interupts can often interfere with main line programming. Can you measure this? Would it be beneficial to add a special processsor that just handled interrupts? How would this interact with the main processor?

Direct Support of Active Messages in Multicore

Currently all multicore systems use shared memory. Would performance be improved by adding direct support for messages (other than loads/stores) to the system? How would you integegrate it?

This would probably include a comparison of multiple methods of syncronization across different architectures.

Back to 15-740 home page.