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):
NOTE: where links are provided, they often refer to original articles (from several years ago) that "set the tone" -- use such articles for your initial understanding, and then also seek out more recent articles to understand the state-of-the-art.
-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. -Also related to writing "parallel code", consider the "Ninja" performance gap: http://dl.acm.org/citation.cfm?id=2337210&bnc=1 -Quantum computation -Simultaneous multithreading: http://www.cs.washington.edu/research/smt/index.html (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. -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? -More on virtual machines: you could also examine JVMs (Java Virtual Machine), from a hardware point of view. -Malware plus virtual machines. For instance, see www.eecs.umich.edu/~pmchen/papers/king06.pdf -Security and information leakage from a processor? http://www.cs.columbia.edu/~simha/preprint_isca12_svf.pdf -Errors in main memory. For instance, http://dl.acm.org/citation.cfm?id=2150989