Main Page

Current Project: Northwestern University

Main Page Current Project Weekly Log Final Report About My Mentor About Me

        My main project here at Northwestern University is on self repairing processors. This is accomplished by using a variety of hardware and software techniques to lower what might be a major problem in a program's execution down to a much smaller one, helping the program run correctly. As hardware gets smaller and much more sophisticated, the likelihood of faulty hardware being produced increases dramatically. Due to this, current research is being done in trying to reduce the severity of these errors. As hardware faults cannot be fixed on the fly, methods have to be designed to minimize the error in the output and get a result that is good enough to use in software. Since this method does not produce a completely error-free output and is not 100 percent accurate, this is not ideal for anything that needs exact values, like any program that deals with large amounts of data crunching and math. Instead, efforts will be focused on multimedia, where a slight alteration of a pixel or a drop in frames is barely noticeable to the human eye. This leads to a higher fault tolerance in multimedia applications, which is a good starting point in testing new methods of self repair. Our main focus now will be to concentrate on the MMX instructions used in x86 CPUs when encoding and decoding different multimedia formats using the program FFMPEG.

        My goal now is to profile FFMPEG using the tool OProfile to see what exact lines of code and assembly instructions are being used when encoding and decoding pictures into different formats. Profiling using Oprofile works by taking constant samples of everything being run on the system. This program then lists the procedures and calls that was being run while the profiler was running and lists them according to length of time each procedure took. This part of the project is explained in finer detail in the log.