CompOrg Spring 2004 Homework #5

CompOrg Memory Performance Assignment

Due Date: April 30th
Submit to WebCT Dropbox

Late Penalty: 100% (no late submissions!)

Assignment

Your job is to use your knowledge of C and IA32 assembly programming, memory system architecture, the time and/or gprof commands and your wits, to determine the size of the cache(s) on monte.cs.rpi.edu (or on any machine you want).

Correctly stating the size and number of caches is not worth any points! You must provide justification for your estimates based soley on measurements you make using time and/or gprof (on programs you write).

Submission

You should submit a brief report (no more than 2 pages) describing how you attempted to determine the size and number of caches on monte, what measurements you made (list the specific experiments you ran and why you ran them), the results of your experiments presented concisly (a table would be nice) and your interpretation of the results.

You must also submit all code you wrote!

Grading

Your grade will be determined based on how appropriate your experiments were to anything that could possibly answer the question posed, not on the specific results you get. As you will see - it's not easy to make these kinds of measurements using just the time command (and gprof).! Consider k-best strategies (although make sure you use this appropriately!).

If your experiments don't provide you with conclusive evidence of any specific cache size - say so! If you can think of better experiments, describe them (perhaps something other than the time command would make this easier?).

Notes

IMPORTANT: You are not trying to determine how much main memory is available on monte! Don't attempt to use more memory than the machine actually has, or you will slow the machine to a crawl.!

Don't know how to get started? Check out the description of the "memory mountain" in the text and lecture notes.