Spring 2005



FAQ

Design Project One: Frequently-Asked Questions


Tips for DP1 Preliminary Proposal

Part I: Tips for DP1 Preliminary Proposal

The audience for the design proposal is the 6.033 staff. You should assume that we're familiar with the DP1 assignment and with the material taught in 6.033. In particular, you shouldn't repeat anything from the assignment in your proposal; you will need to make every word count towards explaining your design.

You should try to explain your design such that an experienced systems programmer (e.g. your TA) could write the code for the central computer just from reading your description. Obviously, you will need to limit the level of detail to fit within the 800 word limit, but try to be as detailed as possible within that bound.

Here are a few general writing recommendations:

  • Start with a brief introduction that summarizes the design, your reasoning, and the steps you will take to describe your design.
  • Provide a general overview of your design first, then discuss specific decisions. While you might need to make the overview final after you have worked out some of your design details, the overview should help the reader by providing context for individual choices. You might need a figure to explain your approach.
  • Keep the structure relatively simple, with two or three subheads at the most.

Q: "Can I change the Beta itself?"

A: Assume that Beta microprocessors are being mass-produced in a factory. You can't change the hardware that this factory is pumping out. But you can add your own hardware external to the Beta.

Q: "What constitutes the Beta hardware?"

A: The interface to the Beta consists of the following lines: (VDD, GND, CLK, RESET, IRQ, IA(32), ID(32), MA(32), MRD(32), MWD(32), WR, MOE).

Q: "Must my design fully service multiple interrupts raised at the same time (in comparison to merely allowing multiple interrupts to be raised simultaneously without crashing)?"

A: Yes.

Q: "Must my design support 30 Mbytes/s end-to-end throughput?"

A: You should not count signaling overhead in your aggregate throughput measurement. Show that your bus can provide 30 megabytes/sec of data (that is, device-specific payload) in either direction between the BED and the Beta's registers (which is less constraining than between BEDs and RAM).

Q: How do I calculate the end-to-end throughput?

A: The first thing to do is to map out exactly how your bus sends data, from BEDs to the Beta, and from the Beta to the BEDs. Be able to answer, "What bits are on what pins on each cycle?" Include cycles spent searching for the right BED, sending special values, etc.

Step two is to figure out how many cycles will be spent sending useful data (data that will depend on the particular device and the particular device driver).

If you find that every other cycle is spent sending real data (data that will be useful to the device driver), and if you can send 32 bits of real data on those cycles, and the cycles come at 10 MHz, then that's 20 megabytes per second. If you find that you can only acheive the 30 Mbyte/s goal under certain conditions, then state those conditions in your report.


Questions or comments regarding 6.033? Send e-mail to the 6.033 staff at or to the 6.033 TAs at

Top // 6.033 home // $Revision: 1.9 $, last modified on $Date: 2005/03/14 20:52:06 $ GMT by $Author: stanrost $