M.I.T. DEPARTMENT OF EECS


6.033 - Computer System Engineering (Spring 2000) Handout 13 - March 2, 2000

Design Project #1 - VM for a Handheld Computer

NEW This document has been updated (as of March 13, 2000) to inline points made in the Updates and FAQ. It makes no new information beyond that already included in that document. These changes are merely provided for your convenience. All updated items are italicized and marked with the "new" icon.

I. Introduction

One of the features of 6.033 is that we discuss real systems, both successful and unsuccessful. To get beyond discussion and give you some direct experience with designing systems, we also assign two design projects. As in the real world, these projects have (we hope) a simple high level problem statement but when you get into the system design you will find that there are hard choices to make. And, as in the real world, it is your job to explore, understand, and explain: This term, the first of these design projects relates to designing a virtual memory subsystem for a handheld computer where energy-efficiency is of great importance.

II. The problem

Recent advances in hardware and miniaturization have made powerful handheld computers a reality; the d(technology)/dt of the computer industry has made it such that a handheld computer will be capable of performing many of the tasks that are done today on bigger desktops or laptop computers.

While speed is not a problem, the same is not true of energy consumption. Battery technology is not improving at a rapid rate, and in fact, there are fundamental limitations to how much more efficient batteries can be. Unfortunately, computers have numerous components that consume significant amounts of energy---for example, the processor power dissipation is proportional to its clock frequency, and hard disks have mechanical parts that use up a lot of energy to start spinning from an idle state, and only a little bit less while continuing to spin.

Hands21.com is building a product for the expanding class of handheld computer users who want to do more than just manage their calendar and maintain addresses. A market survey indicates that users are interested in surfing the Web, communicating using audio and video, and using speech-based interfaces on their handhelds. Hands21.com has decided to meet this challenge by designing a complete computer system---hardware and software---for this market.

As chief operating system designer for Hands21.com, you need to make sure that the system isn't a battery-eater. So, together with the hardware designers, you come up with the following hardware specifications for the components in the product based on components that aren't energy hogs but which still provide reasonable performance to run interesting applications.

Processor  
Maximum rated speed 200 MHz
Other tunable speeds 100 MHz & 33 MHz
Peak processor power consumption 0.4 Watts
Memory  
Capacity 32 MBytes
Hard disk (backing store)  
Capacity 3.2 GBytes
Rotational speed 7200 rpm
Disk operation Power consumed (average) Time taken (average)
Startup from sleep 4.7 Watts 20 ms
Read 2.3 Watts 10 ms
Write 2.3 Watts 10 ms
Idle, but spinning 0.95 Watts  
Sleep mode (not spinning) 0.1 Watts  

NEW Each disk operation takes essentially 10ms. The time given for reads and writes is an average value that takes into account seek, rotational latency, and transmission times (these are parameters that we haven't yet discussed in class). However, the amount of data being transferred is relatively unimportant (unless you are reading many megabytes of data).

NEW The processor in the handheld can be clocked as fast as 200 MHz, but also has modes where it can run at 100 MHz and 33 MHz. The peak power consumption is 400 mW when running at 200 MHz. Recall from freshman physics that power is the rate at which energy is consumed, which implies that the processor power dissipation is proportional to the processor clock speed. If you decide to adjust processor speeds, that's OK, but you have to understand and justify the need to do so. Assume that the processing for compression and decompression are pipelined well-enough so that there are no idle cycles.

You analyze the typical applications your customers want to run on the handheld, and discover that most of them are processor or memory-bound, and consume large amounts of memory (all that memory-intensive video). The file system itself isn't stressed all that much, which is good because your disk's power consumption seems substantial. Unfortunately, you also realize that paging activity is likely to activate the disk because it is the default backing store in most traditional operating systems. You therefore need to pay attention to the paging subsystem to ensure that the system as a whole is energy-efficient.

Thus, your job is to design a virtual memory (VM) subsystem for Hands21.com to make sure that paging to and from program memory does not take up too much energy. You mention this in passing to Alyssa P. Hacker, who thinks for a minute and wonders if data compression algorithms can help here. She suggests that because the disk is the energy hog, try and avoid using it as much as possible. When a page needs to be sent to backing store, rather than simply write it to disk, compress it and put it at another place in memory. Of course, you end up not being able to use all the memory for programs, but the potential gain is in extending precious battery life.

NEW Excited, you analyze the target applications and find that those pages seem to compress quite well, 1 : 4 on average. But compression is variable; not all compressed pages are the same size. This means that on average, you gain a factor of 4 by compressing (e.g., 10 Mbytes of data can be stored compressed in 2.5 Mbytes of RAM.) Some pages may not compress at all and others may compress by a factor of ten. The amount of extra memory you need to store tables etc. for compression and decompression is relatively small with the algorithm you're using.

You run some experiments to understand the working set behavior of your target applications with the standard LRU replacement algorithm. You find that as a function of the amount of RAM used, the miss rate m is given, for the LRU replacement policy, by the following table:

RAM used (MBytes) Miss rate m
16 4%
24 2%
32  1%
40 0.5%
48 0.25%
56 0.125%
64 0.0625%
72 0.0313%
80 0.0156%
88 0.0078%
96 0.0039
104 0.0019%
112 0.0009%
120 0.0004%

NEW That is, if the amount of RAM in the computer is X, the miss rate is f(X), where f(X) is the second column of the table.  As you can easily verify, the miss rate halves for every additional 8 MBytes in the 24MBytes-120MBytes range for your programs. Note, this means that this table applies to the compressed store as well. Think of it this way: with compression, you can make it look like you have more RAM than you actually do. You are absolutely limited to 32 MBytes of RAM in the system --- the goal of the project is to design a virtual memory system.

You also measure how much computation is needed to compress and decompress an 8 KByte page of data. You find that it takes on average 4 instructions per byte to do this, and does not involve any paging or file system activity.  The processor executes one instruction every clock cycle.

To summarize the main issues:

In your report, describe the details of the design of a VM subsystem that exploits data compression to improve energy-efficiency for Hands21.com's product. Your design must address the following issues: Your design should be detailed, describing the algorithms in detail and the the data structures used to implement them. Your analysis should be clear and crisp. If you need to make any assumptions because some information hasn't been provided, please do so and clearly state it, explaining why it is a reasonable assumption and why you need to make it.

You do not need to address the following issues in your design:

III. Your report

We now provide some suggestions and guidelines on writing style and outline the things we look for in your report.

III.1. Suggestions on Writing Style

Your paper should be as long as is necessary to explain the problem, your solution, the alternatives you considered, and the reasons for your choices.  It should be no longer than that.  We estimate that a good paper will be 8 to 10 pages in length.

A good paper begins with an abstract.  The abstract is a very short summary of the entire paper.  It is not an outline of the organization of the paper! It states the problem to be addressed (in one sentence).  It states the essential points of your solution, without any detailed justification.  And it announces any conclusions you have drawn. Good abstracts can fit in 100-150 words, at most.

The body of your paper should expand the points made in the abstract. Here you should:

1. Explain the problem and the externally imposed constraints.

    You should explain to your intended audience the background of the problem in terms that the audience can understand.

2. Explain and elaborate your solution.

    Be sure to explain the approach or architecture conceptually before delving into details, components, and mechanics. (Remember, you aren't writing a mystery novel!) Present any analysis clearly and concisely.

3. Show how your solution satisfies the constraints and solves the problem (or how it fails to do so);

    Explain how the properties of your solution that result from choices you have made in your design are reasonable or desirable in the context of the problem statement.  Include analysis of the estimated (or measured, if it applies) performance characteristics of your solution.

4. Describe the alternative approaches that you considered and rejected, and why you rejected them.

    Your paper will be more convincing if you say not just why your idea is good, but why it is better than the alternatives.  (For example, if another approach would meet all of the objectives perfectly, but the cost would be 100 times higher, then you should mention that as a reason for choosing your less general but cheaper approach.)

5. Document your sources, giving a list of all references (including personal communications). The style of your citations (references) and bibliography should be similar to the styles in the technical papers you're reading in this class. In particular, a bibliography at the end and no citations in the text of your paper is insufficient; we'd like to see what specific pieces of information you learned from where as we read your paper.

Write for an audience consisting of colleagues who took 6.033 five years ago. That is, they understand the underlying system and network concepts and have a fair amount of experience applying them in various situations, but they have not thought carefully about the particular problem you are dealing with. Assume that your paper will also be used to convince the Hands21 staff that you have a viable design. Finally, give enough detail that they can turn the project over to their Information Technology programmers for implementation with some confidence that you won't surprised by the result.

III.2. How do we evaluate your report?

When evaluating your report, your instructor will look at both content and writing.

Some content considerations:

Some writing considerations: You can find other helpful suggestions on writing this kind of report in the M.I.T. Writing Program's on-line guide to writing Design and Feasibility Reports.  You may also want to look at the Mayfield Handbook's explanation of IEEE documentation style.  A very good book on writing style is: "The Elements of Style," by William Strunk Jr. and E. B. White, Third Ed., MacMillan Publishing Co., New York, NY, 1979. (An older version is also available online or from the MIT libraries.)

Phase Two writing considerations

If you are enrolled in the 6.033 writing practicum, you don't need to do anything special; your practicum instructor will explain how the report will get you credit for the Phase II writing requirement. If you are not enrolled in the practicum, and you want us to forward your design project report to the writing program as your phase II writing project, please say so on the cover page, and make sure that your report is at least 8 pages long. Note also that the writing program has a rule that they will accept only reports that earn a B or better from the class in which they originate. Finally, be aware that the second design project will probably be a team project, and thus much more difficult to tailor to the needs of the writing program than this one.

IV. Collaboration

This project is an individual effort. You are welcome to discuss the problem and ideas for solution with your friends, but if you include any of their ideas in your solution you should explicitly give them credit. You must be the sole author of your report.

V. Schedule

Your report is due at the beginning of recitation Thursday, March 16, 2000.
 
 
Go to 6.033 Home Page Questions or Comments: 6.033-tas@mit.edu