Claurissa's Weekly Work Journal
Week One (May 14-May 22):
We, Christene and I, met the graduate students who work
in the Opera research group here at the University of Illinois Urbana-Champaign.
I began my research by reading a paper on iWatcher, which is the project that I
will be continuing this summer. It involves efficient architectural
support for software debugging. I also started to read some of the papers
in the references of the iWatcher paper. One of the papers
DIDUCE (http://suif.stanford.edu/papers/Diduce.pdf)
stood out because iWatcher is complementary to it. It seems like a good
idea to be familiar with other approaches to debugging that compliment your own.
I started to make a list of papers that I will read and present over the course
of the summer.
Week Two (May 23-May 29):
This week I did some made my list of papers that relate to
Simics and architectural support for debugging. The Simics papers were
fairly easy to find because there is a page that has link to all Simics related
papers. It's possible that the site doesn't contain all papers related to
that, but it contains all that they know about. The architectural support
for debugging papers were harder to find. This is partially because I was
unclear of what types of papers I was looking for. Some papers were
clearly what I was looking for, and others I was not so sure about. YY
will look over the list and remove unrelated papers and possibly add a few more
related papers. Another thing that I did this week was to help proofread a
paper that some grad students were submitting to a conference. Other than
that, I read some papers on Simics. I tried to download Simics and
familiarize myself with it, but Simics offers personal licenses and I'm not for
sure which computer I'll be using over the summer. I was under the
impression that I could only get one personal license and it only could be used
for one computer. I was unsure of whether or not it is possible to
transfer the license to another computer, so I didn't register for the license
just yet.
Week Three (May 30-June 5):
I found some Simics code that had been downloaded on my
computer. I've not yet been able to get it up and running, but I'm
looking into it. I'm also unsure about the licensing situation. I'll
have to read everything in the instructions closely to make sure the licensing
is set up correctly. I did find instructions on how to start Simics, but
the licensing situation does need to be cleared up before I will be able to run
it. I read Introduction to SimICS Full System Simulator Without Equal
quite a few times. Or, at least I read some sections of it quite a few
times. There were a few things in it that I didn't quite understand. I
also started preparing my slide-show for my presentation next Tuesday.
The presentation will be an overview of Simics. I now have a copy of
the iWatcher code that was used on a simulator at this university. I
started looking at it a little, but most of my understanding of that
code should come after I understand the simulator that I will be
implementing iWatcher on. I am told that most of the code for iWatcher
will be different than the current code because of the differences in
the simulators and that most of my code will be based on what I gather
from reading the iWatcher paper rather than what I am able to gather
from the actual code.
Week Five (June 13-June 19):
I received the Simics license and started with a tutorial
that didn't work for me. I figured out that the reason it wasn't working
was because I needed an Xserver. The Xserver installed on my machine
didn't seem to work. I tried downloading the Xserver again, but it didn't
quite work because I don't have administrative privileges on the computer I'm
working on. I was able to get the tutorial to work from a Linux machine,
but it'd still be more convenient if I can get the Xserver running on my windows
machine. I've downloaded the Simics user manual (that I didn't have
access to until I got the license). I'm reading it and trying to figure
out what part of the simulator I have control over. My current assignment
is to make a list of the parts of Simics that the user is responsible for
defining, or that the user has access to make changes to.
Week Six (June 20-June 26):
I got Cygwin to work. It wasn't
behaving properly at first, but I did eventually get all of the
settings and flags set up correctly enough that I can run the Simics
simulator. I also discovered the source code of Simics. Simics has
devices and extensions. I believe that I can modify the code for the
devices and extensions in any way that I see fit. However, I'm not
sure yet where to do the modifying. I'll have to investigate the
files and see what they're actually doing. The files have informative
names such as sample-memhier.c and sample-micro-arch.c. Therefore, I
know what the files are for, but there's a lot of code that I need to
figure out.
Week Seven (June 27-July 3):
I added cache to the firststeps tutorial on Simics. I
discovered that I had an outdated version of the User guide for Simics. I
downloaded the new one, and it made a lot more sense. I printed out quite
a few files with Simics source code so I could study them. I did some more
tutorials that are mentioned in the documentation. I met with my advisor
and got the assignment to create a detailed design of how I'm going to add
iWatcher to Simics.
Week Eight (July 4-July 10):
I studied the some of the Simics source code and basically
tried to figure out more of how Simics works.
Week Nine (July 11-July 17):
I gave a presentation on the architecture of Simics. I
also started looking in to how to port iWatcher into Simics.
Week Ten (July 18-July 28):
I looked at Simics some more and gave one last presentation
because the previous week's presentation wasn't quite what my
mentor wanted.