6.033 - Computer System Engineering (Spring 2000) | Handout 13 - March 2, 2000 |
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.
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 |
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).
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.
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% |
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:
You do not need to address the following issues in your design:
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:
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.
Go to 6.033 Home Page | Questions or Comments: 6.033-tas@mit.edu |