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.