Assignment: Research and write a paper discussing a current computer architectural topic/issue. Specific requirements:
Specific deliverables:
Grading:
Suggested topics (but need not be one of these):
-GPUs -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: http://www.cs.washington.edu/research/smt/ (renamed Hyperthreading by Intel) http://www.intel.com/technology/platform-technology/hyper-threading/index.htm http://software.intel.com/en-us/articles/intel-hyper-threading-technology-your-questions-answered/ -Fault tolerant computing (hardware failures or design flaws) For instance, see DIVA: http://www.eecs.umich.edu/~taustin/papers/MICRO32-diva.pdf -Reconfigurable computing. You could start here: http://portal.acm.org/citation.cfm?id=1749604 or this older survey http://portal.acm.org/citation.cfm?id=508353 -Concurrency in hardware and software One possible place to start: http://www.gotw.ca/publications/concurrency-ddj.htm -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: http://www.ece.neu.edu/wall2k.html http://www.ece.neu.edu/conf/wall2k/MWMprog.htm -Why is power consumption an increasingly important factor for processors? Research and describe some techniques for reducing power consumption. -Optical based computers or interconnect. -Issues with scaling down transistor size. -Formal methods to verify hardware (e.g. model checking, equivalence checking). http://www.cerc.utexas.edu/~jay/fv_surveys/ -Virtual machines, VMWare. How do they work? Why would you want to use them? An overview is here: http://www.cs.binghamton.edu/~kchiu/cs552-f04/papers/smith-04.pdf -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: http://www.cs.umass.edu/~emery/pubs/ccs03-novark.pdf -Nanoprocessors. For instance: http://www.itnews.com.au/News/247677,researchers-boast-first-programmable-nanoprocessor.aspx -Issues in low power storage. For instance http://www.cs.umass.edu/~kevinfu/papers/salajegheh-halfwits-FAST11.pdf