Course Paper

Assignment: Research and write a paper discussing a current computer architectural topic/issue. Specific requirements:

  1. Originality:This topic and paper must be researched and written this semester for this class(i.e. a paper from a previous class is not allowed to be used).
  2. Sources: You must have at least three sources. Wikipedia may be used, but counts for at most ONE source.
  3. Bibliography: Append a list of resources/references used to the end of your paper. You can pick the format.
  4. Length: 3 to 5 pages.
  5. Content: Your paper should have some analysis, not just a rehashing of the sources that you found. For instance, if discussing a problem, how serious a problem is it and are the solutions you discovered likely to really work?
  6. No name! Please do not place your name on the paper itself -- only on the coversheet that will be provided and stapled to your paper.
  7. Quotations: Use your own words. Use quotations where necessary, but this should be infrequent and brief.
  8. Format: Your paper must be typed.

Specific deliverables:

  1. Paper description: Submit your description to your instructor (see calendar for deadline) via plain text e-mail (do NOT send a Microsoft Word document etc.). Include the following:
  2. TWO copies of Paper v1.0. See calendar for due date. You will submit a complete, well-written draft of your paper (see calendar for deadline). Very soon thereafter, we will devote one day of class to peer review: everyone will read and give constructive feedback on two papers. You will receive this feedback, and will use it to revise the paper.
  3. Final paper submission. See calendar for due date. Be sure that you have revised the paper based on the comments you received. Turn in:


Suggested topics (but need not be one of these):


-Transactional memory

-Very Long Instruction Word (VLIW) machines.  Why
do this -- what are the costs and benefits? 

-Costs and benefits from going to a 64-bit architecture.

-Wire delay -- what is it and why are chip designers so scared about it?

-What is a dataflow machine?  Why didn't the idea take over the world?

-Multicore chips

-Writing software for multicore/multiprocessor systems.  Apple's Xcode has some tools for this that you might consider.
Also consider MPI, OpenMP, or Cilk.

-Quantum computation

-Simultaneous multithreading:
(renamed Hyperthreading by Intel)

-Fault tolerant computing
(hardware failures or design flaws)
For instance, see DIVA:

-Reconfigurable computing.  You could start here:
or this older survey

-Concurrency in hardware and software
One possible place to start:

-Why is branch prediction so important?  Investigate and describe
some of the most successful techniques that have been recently 
proposed or used.

-What is the "memory wall"?  Describe the problem and then investigate
at least one aggressive technique for attacking it.  See for instance:

-Why is power consumption an increasingly important factor for
processors?  Research and describe some techniques for reducing power

-Optical based computers or interconnect.

-Issues with scaling down transistor size.

-Formal methods to verify hardware (e.g. model checking, equivalence checking).

-Virtual machines, VMWare.  How do they work?  Why would you want to use them?  An overview is here:

-More on virtual machines: you could also
examine JVMs (Java Virtual Machine), from a hardware point of view.   

-How computer architecture and the stack relate to security exploits. For instance,
an interesting paper on security-resistant memory allocation:

-Nanoprocessors.  For instance:,researchers-boast-first-programmable-nanoprocessor.aspx

-Issues in low power storage.  For instance

Valid XHTML 1.1!